{"id":14956091,"url":"https://github.com/ipfs/go-ipld-git","last_synced_at":"2025-04-08T08:11:58.463Z","repository":{"id":45492811,"uuid":"76387988","full_name":"ipfs/go-ipld-git","owner":"ipfs","description":"ipld handlers for git objects","archived":false,"fork":false,"pushed_at":"2025-03-29T08:32:13.000Z","size":278,"stargazers_count":58,"open_issues_count":6,"forks_count":19,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-04-01T05:33:34.726Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/ipfs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2016-12-13T18:43:45.000Z","updated_at":"2025-03-28T13:08:42.000Z","dependencies_parsed_at":"2024-12-14T13:11:37.914Z","dependency_job_id":"7a54b29f-cab2-430d-a2a9-d0608fd4cfb8","html_url":"https://github.com/ipfs/go-ipld-git","commit_stats":{"total_commits":86,"total_committers":14,"mean_commits":6.142857142857143,"dds":0.7441860465116279,"last_synced_commit":"b97b5d7cc4e48990554ced9255addb3b62bc07e6"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipld-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipld-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipld-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fgo-ipld-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipfs","download_url":"https://codeload.github.com/ipfs/go-ipld-git/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247801170,"owners_count":20998339,"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":[],"created_at":"2024-09-24T13:12:17.935Z","updated_at":"2025-04-08T08:11:58.444Z","avatar_url":"https://github.com/ipfs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Git ipld format\n==================\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io)\n[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/)\n\n\u003e An IPLD codec for git objects allowing path traversals across the git graph.\n\n## Table of Contents\n\n- [Install](#install)\n- [About](#about)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Install\n\n```sh\ngo get github.com/ipfs/go-ipld-git\n```\n\n## About\n\nThis is an IPLD codec which handles git objects. Objects are transformed\ninto IPLD graph as detailed below. Objects are demonstrated here using both\n[IPLD Schemas](https://ipld.io/docs/schemas/) and example JSON forms.\n\n### Commit\n\n```ipldsch\ntype GpgSig string\n\ntype PersonInfo struct {\n  date String\n  timezone String\n  email String\n  name String\n}\n\ntype Commit struct {\n  tree \u0026Tree # see \"Tree\" section below\n  parents [\u0026Commit]\n  message String\n  author optional PersonInfo\n  committer optional PersonInfo\n  encoding optional String\n  signature optional GpgSig\n  mergetag [Tag]\n  other [String]\n}\n```\n\nAs JSON, real data would look something like:\n\n```json\n{\n  \"author\": {\n    \"date\": \"1503667703\",\n    \"timezone\": \"+0200\",\n    \"email\": \"author@mail\",\n    \"name\": \"Author Name\"\n  },\n  \"committer\": {\n    \"date\": \"1503667703\",\n    \"timezone\": \"+0200\",\n    \"email\": \"author@mail\",\n    \"name\": \"Author Name\"\n  },\n  \"message\": \"Commit Message\\n\",\n  \"parents\": [\n    \u003cLINK\u003e, \u003cLINK\u003e, ...\n  ],\n  \"tree\": \u003cLINK\u003e\n}\n```\n\n### Tag\n\n```ipldsch\ntype Tag struct {\n  object \u0026Any\n  type String\n  tag String\n  tagger PersonInfo\n  message String\n}\n```\n\nAs JSON, real data would look something like:\n\n```json\n{\n  \"message\": \"message\\n\",\n  \"object\": {\n    \"/\": \"baf4bcfg3mbz3yj3njqyr3ifdaqyfv3prei6h6bq\"\n  },\n  \"tag\": \"tagname\",\n  \"tagger\": {\n    \"date\": \"1503667703 +0200\",\n    \"email\": \"author@mail\",\n    \"name\": \"Author Name\"\n  },\n  \"type\": \"commit\"\n}\n```\n\n### Tree\n\n```ipldsch\ntype Tree {String:TreeEntry}\n\ntype TreeEntry struct {\n  mode String\n  hash \u0026Any\n}\n```\n\nAs JSON, real data would look something like:\n\n```json\n{\n  \"file.name\": {\n    \"mode\": \"100664\",\n    \"hash\": \u003cLINK\u003e\n  },\n  \"directoryname\": {\n    \"mode\": \"40000\",\n    \"hash\": \u003cLINK\u003e\n  },\n  ...\n}\n```\n\n### Blob\n\n```ipldsch\ntype Blob bytes\n```\n\nAs JSON, real data would look something like:\n\n```json\n\"\u003cbase64 of 'blob \u003csize\u003e\\0\u003cdata\u003e'\u003e\"\n```\n\n## Lead Maintainers\n\n* [Will Scott](https://github.com/willscott)\n* [Rod Vagg](https://github.com/rvagg)\n\n## Contribute\n\nPRs are welcome!\n\nSmall note: If editing the Readme, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## License\n\nMIT © Jeromy Johnson\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs%2Fgo-ipld-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipfs%2Fgo-ipld-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs%2Fgo-ipld-git/lists"}