{"id":17703264,"url":"https://github.com/nagyesta/yippee-ki-json","last_synced_at":"2026-01-14T02:50:24.106Z","repository":{"id":36968032,"uuid":"266867836","full_name":"nagyesta/yippee-ki-json","owner":"nagyesta","description":"Minimal Java utility application for JSON manipulation.","archived":true,"fork":false,"pushed_at":"2024-12-28T11:52:09.000Z","size":2192,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T06:34:05.636Z","etag":null,"topics":["java","json","json-parser","transforming-files"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nagyesta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-25T19:52:44.000Z","updated_at":"2024-12-28T12:14:25.000Z","dependencies_parsed_at":"2023-09-27T23:13:55.926Z","dependency_job_id":"95dc90ac-cbd1-4caf-ab8f-a8326006d4ef","html_url":"https://github.com/nagyesta/yippee-ki-json","commit_stats":{"total_commits":672,"total_committers":4,"mean_commits":168.0,"dds":"0.12648809523809523","last_synced_commit":"8a551ba325fb3d800cb8b8cfa99fb0858a26b3b1"},"previous_names":[],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/nagyesta/yippee-ki-json","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagyesta%2Fyippee-ki-json","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagyesta%2Fyippee-ki-json/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagyesta%2Fyippee-ki-json/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagyesta%2Fyippee-ki-json/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nagyesta","download_url":"https://codeload.github.com/nagyesta/yippee-ki-json/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nagyesta%2Fyippee-ki-json/sbom","scorecard":{"id":672930,"data":{"date":"2024-12-28T11:52:02Z","repo":{"name":"github.com/nagyesta/yippee-ki-json","commit":"ff42db3120deca1401bb92f12855f463d55cbe81"},"scorecard":{"version":"v5.0.0","commit":"ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4"},"score":7.2,"checks":[{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":10,"reason":"30 out of 30 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#ci-tests"}},{"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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#cii-best-practices"}},{"name":"Code-Review","score":0,"reason":"Found 0/4 approved changesets -- score normalized to 0","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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#code-review"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: epam systems contributor org/company found, "],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#contributors"}},{"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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#dangerous-workflow"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: RenovateBot: renovate.json:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#dependency-update-tool"}},{"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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#license"}},{"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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#maintained"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/gradle.yml:36"],"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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  22 out of  22 GitHub-owned GitHubAction dependencies pinned","Info:  11 out of  11 third-party 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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#sast"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#security-policy"}},{"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/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#signed-releases"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release-draft.yml:15","Info: topLevel permissions set to 'read-all': .github/workflows/add-index-exclusion.yml:10","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:40","Info: topLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:39","Info: topLevel permissions set to 'read-all': .github/workflows/gradle-ci.yml:30","Info: topLevel permissions set to 'read-all': .github/workflows/gradle-oss-index-scan.yml:8","Info: topLevel permissions set to 'read-all': .github/workflows/gradle.yml:33","Info: topLevel permissions set to 'read-all': .github/workflows/pr-labeler.yml:6","Info: topLevel 'contents' permission set to 'read': .github/workflows/release-draft.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/release-trigger.yml:17","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:20","Info: topLevel permissions set to 'read-all': .github/workflows/update-dependency-checksums.yml:5"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":0,"reason":"24 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-6v67-2wr5-gvf4","Warn: Project is vulnerable to: GHSA-pr98-23f8-jwxv","Warn: Project is vulnerable to: GHSA-rg2c-cfxv-qp6f","Warn: Project is vulnerable to: GHSA-3f7h-mf4q-vrm4","Warn: Project is vulnerable to: GHSA-5mg8-w23w-74h3","Warn: Project is vulnerable to: GHSA-7g45-4rm6-3mm3","Warn: Project is vulnerable to: GHSA-f8cc-g7j8-xxpm","Warn: Project is vulnerable to: GHSA-hfq9-hggm-c56q","Warn: Project is vulnerable to: GHSA-j563-grx4-pjpv","Warn: Project is vulnerable to: GHSA-4265-ccf5-phj5","Warn: Project is vulnerable to: GHSA-4g9r-vxhx-9pgx","Warn: Project is vulnerable to: GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GHSA-rggv-cv7r-mw98","Warn: Project is vulnerable to: GHSA-wgh7-54f2-x98r","Warn: Project is vulnerable to: GHSA-hmr7-m48g-48f6","Warn: Project is vulnerable to: GHSA-qh8g-58pp-2wxh","Warn: Project is vulnerable to: GHSA-g8m5-722r-8whq","Warn: Project is vulnerable to: GHSA-3gh6-v5v9-6v9j","Warn: Project is vulnerable to: GHSA-j26w-f9rq-mr2q","Warn: Project is vulnerable to: GHSA-r7m4-f9h5-gr79","Warn: Project is vulnerable to: GHSA-58qw-p7qm-5rvh","Warn: Project is vulnerable to: GHSA-3p86-9955-h393","Warn: Project is vulnerable to: GHSA-pmxq-pj47-j8j4","Warn: Project is vulnerable to: GHSA-mjmj-j48q-9wg2"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T20:45:57.622Z","repository_id":36968032,"created_at":"2025-08-21T20:45:57.622Z","updated_at":"2025-08-21T20:45:57.622Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"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":["java","json","json-parser","transforming-files"],"created_at":"2024-10-24T20:06:42.815Z","updated_at":"2026-01-14T02:50:24.087Z","avatar_url":"https://github.com/nagyesta.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Yippee-Ki-JSON](.github/assets/yippee-ki-json_small_logo.png)\n\n---\n\n[![GitHub license](https://img.shields.io/github/license/nagyesta/yippee-ki-json?color=blue)](https://raw.githubusercontent.com/nagyesta/yippee-ki-json/main/LICENSE)\n[![Java version](https://img.shields.io/badge/Java%20version-17-yellow?logo=java)](https://img.shields.io/badge/Java%20version-17-yellow?logo=java)\n[![latest-release](https://img.shields.io/github/v/tag/nagyesta/yippee-ki-json?color=blue\u0026logo=git\u0026label=releases\u0026sort=semver)](https://github.com/nagyesta/yippee-ki-json/releases)\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.nagyesta/yippee-ki-json?logo=apache-maven)](https://search.maven.org/artifact/com.github.nagyesta/yippee-ki-json)\n[![JavaCI](https://img.shields.io/github/actions/workflow/status/nagyesta/yippee-ki-json/gradle.yml?logo=github\u0026branch=main)](https://github.com/nagyesta/yippee-ki-json/actions/workflows/gradle.yml)\n[![badge-abort-mission-armed-green](https://raw.githubusercontent.com/nagyesta/abort-mission/wiki_assets/.github/assets/badge-abort-mission-armed-green.svg)](https://github.com/nagyesta/abort-mission)\n\n[![codecov](https://img.shields.io/codecov/c/github/nagyesta/yippee-ki-json?logo=codecov\u0026token=HHSXCEQIDA)](https://codecov.io/gh/nagyesta/yippee-ki-json)\n[![code-climate-maintainability](https://img.shields.io/codeclimate/maintainability/nagyesta/yippee-ki-json?logo=code%20climate)](https://img.shields.io/codeclimate/maintainability/nagyesta/yippee-ki-json?logo=code%20climate)\n[![code-climate-tech-debt](https://img.shields.io/codeclimate/tech-debt/nagyesta/yippee-ki-json?logo=code%20climate)](https://img.shields.io/codeclimate/tech-debt/nagyesta/yippee-ki-json?logo=code%20climate)\n[![last_commit](https://img.shields.io/github/last-commit/nagyesta/yippee-ki-json?logo=git)](https://img.shields.io/github/last-commit/nagyesta/yippee-ki-json?logo=git)\n[![wiki](https://img.shields.io/badge/See-Wiki-informational)](https://github.com/nagyesta/yippee-ki-json/wiki)\n\n--- \n\n\u003e [!CAUTION]\n\u003e Yippee-Ki-JSON End of Support notice: The project will reach end of life and go to public archive after the end of 2024. Please see the announcement [here](https://github.com/nagyesta/yippee-ki-json/discussions/783).\n\nYippee-Ki-JSON is the perfect library for die-hard CLI users who need to script JSON document manipulations to eliminate\nslow and error prone operations.\n\n ### Primary feature set\n - Filter out certain parts of JSON documents\n - Replace text snippets of matching nodes\n    - Supporting conditional replacements\n    - In the node values or node names\n - Validate JSON nodes and node values using predefined rules\n\n### Usage\n```bash\njava -jar yippee-ki-json.jar [--yippee.config=file] --yippee.action=action \\\n    [--yippee.input=file] [--yippee.allow-overwrite={true|false}] \\\n    --yippee.output=file\n\njava -jar yippee-ki-json.jar [--yippee.config=file] --yippee.action=action \\\n    [--yippee.input=file] [--yippee.allow-overwrite={true|false}] \\\n    --yippee.output-directory=directory\n\njava -jar yippee-ki-json.jar [--yippee.config=file] --yippee.action=action \\\n    [--yippee.input=directory] [--yippee.includes[0]=pattern] \\\n    [--yippee.includes[1]=pattern] ... [--yippee.includes[N]=pattern] \\\n    [--yippee.excludes[0]=pattern] [--yippee.excludes[1]=pattern] ...\\\n    [--yippee.excludes[N]=pattern] [--yippee.allow-overwrite={true|false}]\\\n    [--yippee.relaxed-yml-schema=={true|false}] --yippee.output-directory=directory\n    [--yippee.charset=charset]\n```\n\n#### Concept\n_Yippee-Ki-JSON_ is a Lightweight JSON manipulation application using [Spring Boot](https://spring.io/projects/spring-boot) and\n[JSON Path](https://github.com/json-path/JsonPath) as core. The application uses the following main concepts to carry out the core logic:\n\n1. A configuration YML file\n2. Input files\n3. An action which is defined in the YML\n4. Output files\n\nThe configuration YML describes certain named actions which can be done to an input file. Each action has a list of rules which will be\napplied in the order they were configured one after the other to the input file when the action in question is selected to be performed. \nAs the result of each rule, certain changes can be made to the JSON nodes located by the JSON Path defined in the rule. In the end, the \ntransformed JSON will be pretty-printed to the output file.\n\n#### Examples\n```bash\njava -jar yippee-ki-json.jar --yippee.action=filter --yippee.output=./out.json\n```\nLoads the default configuration file from the working directory, filters the working directory for input files using the default include\npattern and provided that only one input file was found (as output is a single file as well) applies the `filter` action defined in the YML\nconfiguration file to write it to the output.\n\n```bash\njava -jar yippee-ki-json.jar --yippee.action=filter --yippee.output-directory=./out\n```\nLoads the default configuration file from the working directory, filters the working directory for input files using the default include\npattern and applies the `filter` action defined in the YML configuration file to all of the input files. Writes the result into the `./out`\nfolder using the same file path as the input was relative to the input directory.\n\n```bash\njava -jar yippee-ki-json.jar --yippee.action=filter --yippee.output-directory=./out \\\n    --yippee.allow-overwrite=false\n```\nSame as example (2) but ensures that no files will be overwritten. If an output file exists we will mark it as failed but won't change the\ncontent.\n\n```bash\njava -jar yippee-ki-json.jar --yippee.action=filter --yippee.output-directory=./out \\\n    --yippee.includes[0]=**/*.json --yippee.excludes[0]=exclude.json\n```\nSame as example (2) but will include all files using `.json` as extension searching recursively in the input folder except for the single\nexclusion: `exclude.json`.\n\n#### Options\n##### General options\n| Option                        | Description                                                                          |\n| ----------------------------- | ------------------------------------------------------------------------------------ |\n| `--yippee.config`             | The path where the action descriptor can be located. Default: `actions.yml`          |\n| `--yippee.action`             | The name of the action we want to execute.                                           |\n| `--yippee.input`              | The name of the input file/directory. Default: `./`                                  |\n| `--yippee.allow-overwrite`    | Specifies whether we allow overwriting existing outputs. Default: `true`             |\n| `--yippee.relaxed-yml-schema` | Allows suppression of YML configuration related schema violations. Default: `false`  |\n| `--yippee.includes[0..N]`     | Input file include wildcard patterns. Default: `*.json`                              |\n| `--yippee.excludes[0..N]`     | Input file exclude wildcard patterns.                                                |\n| `--yippee.output`             | Output file path.                                                                    |\n| `--yippee.output-directory`   | Output directory path.                                                               |\n| `--yippee.charset`            | Default character set used during parsing. Default: `UTF-8`                          |\n\n#### SchemaStore integration\nPrefix: `--additional.schema-store.\u003coption\u003e`\n\n| Option              | Description                                                                                           |\n| ------------------- | ----------------------------------------------------------------------------------------------------- |\n| `catalog-uri`       | The URI of the SchemaStore catalog JSON. Default: `https://www.schemastore.org/api/json/catalog.json` |\n| `schema-array-path` | The JSON Path we will use to get the list/array items of the catalog. Default: `$.schemas[*]`         |\n| `mapping-name-key`  | The key referencing the name of the schema item. Default: `name`                                      |\n| `mapping-url-key`   | The key referencing the URI of the schema item. Default: `url`                                        |\n\n#### HTTP Client\nPrefix: `--additional.http.\u003coption\u003e`\n\n| Option                | Description                                                                                     |\n| --------------------- | ----------------------------------------------------------------------------------------------- |\n| `user-agent`          | The value of the user-agent HTTP header.                                                        |\n| `add-default-headers` | Boolean telling the app to add the default HTTP headers automatically. Default: `true`          |\n| `min-success-status`  | The minimum (inclusive) HTTP status code value we should consider as successful. Default: `200` |\n| `max-success-status`  | The maximum (inclusive) HTTP status code value we should consider as successful. Default: `299` |\n| `timeout-seconds`     | The maximum time we want to wait for an HTTP response. Ignored if zero or below. Default: `0`   |\n\n##### Spring Boot options\nAll generic Spring Boot options are supported. Please find a few useful ones below.\n\n| Option                      | Description                                          |\n| --------------------------- | ---------------------------------------------------- |\n| `--logging.level.root`      | Sets the log level of the root package.              |\n| `--logging.level.\u003cpackage\u003e` | Sets the log level of the package named `\u003cpackage\u003e`. |\n\n###### Log levels\n\n| Log level | Meaning                                                                                                             |\n| --------- | ------------------------------------------------------------------------------------------------------------------- |\n| `DEBUG`   | Expect seeing detailed information on the parsed configuration. e.g. the list of rules parsed from the config file. |\n| `INFO`    | Expect brief messages about the parsing and execution. e.g. the number of rules parsed from the config file.        |\n| `WARN`    | Expect only warnings, soft failures.                                                                                |\n| `ERROR`   | Lists only errors which are stopping normal execution.                                                              |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnagyesta%2Fyippee-ki-json","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnagyesta%2Fyippee-ki-json","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnagyesta%2Fyippee-ki-json/lists"}