{"id":25797207,"url":"https://github.com/carabiner-dev/snappy","last_synced_at":"2025-02-27T14:58:25.207Z","repository":{"id":276574725,"uuid":"929624827","full_name":"carabiner-dev/snappy","owner":"carabiner-dev","description":"An easy API snapshot tool.","archived":false,"fork":false,"pushed_at":"2025-02-24T18:20:17.000Z","size":152,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T19:28:30.989Z","etag":null,"topics":["api","attestations","rest","rest-api","sigstore"],"latest_commit_sha":null,"homepage":"","language":"Go","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/carabiner-dev.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-09T01:20:42.000Z","updated_at":"2025-02-24T18:20:20.000Z","dependencies_parsed_at":"2025-02-10T08:04:11.371Z","dependency_job_id":null,"html_url":"https://github.com/carabiner-dev/snappy","commit_stats":null,"previous_names":["carabiner-dev/snappy"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carabiner-dev%2Fsnappy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carabiner-dev%2Fsnappy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carabiner-dev%2Fsnappy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carabiner-dev%2Fsnappy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carabiner-dev","download_url":"https://codeload.github.com/carabiner-dev/snappy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241027043,"owners_count":19896721,"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":["api","attestations","rest","rest-api","sigstore"],"created_at":"2025-02-27T14:58:24.569Z","updated_at":"2025-02-27T14:58:25.201Z","avatar_url":"https://github.com/carabiner-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Snappy\n### Grab attestable snapshots of API responses\n\nSnappy is a simple tool that grabs snapshots of API response data to\nbe able to fix it in a signed attestation.\n\nThe API call is contructed according to a spec file, to generate a snapshot\nyou simply call snappy and pass it a spec:\n\n```\nsnappy snap spec.yaml\n```\n\n## Snapshot Spec \n\nThe API snapshots are controlled through a spec file written in yaml.\nThe spec describes some basic metadata about the object being queried,\nand the API endpoint to hit.\n\nIn order to avoid leaking snesitive data, only data specifically configured\nin the spec will be written in the resulting snapshot.\n\nAn example spec YAML file looks like this:\n\n```yaml\n---\nid: https://github.com/{$ORG}/{$REPO}\ntype: http://github.com/carabiner-dev/snapi/specs/repo.yaml\nendpoint: repos/{$ORG}/{$REPO}\nmethod:  GET\nmask:\n  - id\n  - node_id\n  - name\n  - full_name\n  - html_url\n  - git_url\n  - license\n  - has_discussions\n  - has_issues\n  - homepage\n  - fork\n  - visibility\n  - security_and_analysis\n  - web_commit_signoff_required\n```\n\nFrom the resulting data structure, only those fields named in the field mask\nwill be transferred to the resulting snapshot.\n\n## Variable Support\n\nAs seen in the example above, the snapshot spec can have variables that\ncan be substituted when invoking snappy:\n\n```yaml\nid: https://github.com/{$ORG}/{$REPO}\ntype: http://github.com/carabiner-dev/snapi/specs/repo.yaml\nendpoint: repos/{$ORG}/{$REPO}\n```\n\nTo define a value for the `$ORG` and `$REPO` variables, simply pass them\nin the command line invocation:\n\n```\nsnappy snap --var ORG=myorg --var REPO=myrepo spec.yaml\n```\n\n## Install\n\nTBD\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarabiner-dev%2Fsnappy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarabiner-dev%2Fsnappy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarabiner-dev%2Fsnappy/lists"}