{"id":26093057,"url":"https://github.com/genyleap/pinatapipe","last_synced_at":"2026-03-05T11:04:39.371Z","repository":{"id":281066280,"uuid":"944095756","full_name":"genyleap/PinataPipe","owner":"genyleap","description":"A C++ command-line tool and library for piping files to the Pinata IPFS pinning service. Upload files to IPFS, retrieve content, list pinned files, and delete pins with progress tracking and retry capabilities.","archived":false,"fork":false,"pushed_at":"2025-03-07T05:32:37.000Z","size":78,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-05T07:46:17.865Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/genyleap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.md","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-06T19:24:06.000Z","updated_at":"2025-05-02T21:34:45.000Z","dependencies_parsed_at":"2025-08-15T15:25:41.545Z","dependency_job_id":"37c55f1b-022b-4d3b-9dbb-3109ae54cf1f","html_url":"https://github.com/genyleap/PinataPipe","commit_stats":null,"previous_names":["genyleap/pinatapipe"],"tags_count":0,"template":false,"template_full_name":"genyleap/pt","purl":"pkg:github/genyleap/PinataPipe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genyleap%2FPinataPipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genyleap%2FPinataPipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genyleap%2FPinataPipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genyleap%2FPinataPipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/genyleap","download_url":"https://codeload.github.com/genyleap/PinataPipe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genyleap%2FPinataPipe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30121093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T10:44:24.758Z","status":"ssl_error","status_checked_at":"2026-03-05T10:44:15.079Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-03-09T11:14:25.604Z","updated_at":"2026-03-05T11:04:39.317Z","avatar_url":"https://github.com/genyleap.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"A C++ tool and library for piping files to Pinata's IPFS pinning service. Upload files, retrieve content, list pins, and delete pins with progress tracking and retries.\n\n## Features\n\n- Single/batch uploads with metadata and grouping\n- Fetch IPFS content by hash\n- List/delete pinned files\n- Upload progress (speed, ETA)\n- Error handling with retries\n- Thread-safe CURL ops\n- Config via `config.json`\n\n## Prerequisites\n\n- C++23 compiler (e.g., GCC 13+, Clang 17+)\n- CMake 3.10+\n- [libcurl](https://curl.se/libcurl/)\n- [JsonCpp](https://github.com/open-source-parsers/jsoncpp)\n\n## Installation\n\n1. Clone:\n   ```bash\n   git clone https://github.com/genyleap/pinatapipe.git\n   cd pinatapipe\n   ```\n2. Install deps:\n   - Ubuntu: `sudo apt install libcurl4-openssl-dev libjsoncpp-dev`\n   - macOS: `brew install curl jsoncpp`\n3. Build with PT:\n   ```bash\n   mkdir build \u0026\u0026 cd build\n   cmake .. -DUSE_JSON=true -DUSE_CURL=true\n   make\n   ```\n\n## Configuration\n\nAdd `config.json` in the working directory:\n```json\n{\n    \"pinataApiKey\": \"your_pinata_api_key\",\n    \"pinataSecret\": \"your_pinata_secret_api_key\"\n}\n```\n\n**Note**: Add `config.json` to `.gitignore`.\n\n## Usage\n\n```bash\n./pinatapipe \u003ccommand\u003e [args] [--verbose]\n```\n\n### Commands\n\n- Upload: `./pinatapipe upload \u003cfile\u003e [--group \u003cname\u003e] [--metadata '{\"key\":\"value\"}']`\n- Batch: `./pinatapipe batch \u003cfile1\u003e \u003cfile2\u003e ... [--group \u003cname\u003e] [--metadata '{\"key\":\"value\"}']`\n- Get: `./pinatapipe get \u003cipfs_hash\u003e`\n- List: `./pinatapipe list [--group \u003cname\u003e]`\n- Delete: `./pinatapipe delete \u003cipfs_hash\u003e`\n- Options: `--verbose`, `--group`\n\n### Examples\n\n```bash\n./pinatapipe upload file.txt --group mygroup --verbose\n./pinatapipe batch img1.jpg img2.png --metadata '{\"desc\":\"pics\"}'\n./pinatapipe get ipfs://QmHash\n```\n\n## Library Usage\n\n```cpp\n#include \"ipfs_client.hpp\"\n\nint main() {\n    auto config = Config::load();\n    if (!config) return 1;\n    IPFSClient client(*config);\n    auto result = client.upload({\"file.txt\"}, Json::Value());\n    if (result) std::cout \u003c\u003c (*result)[0] \u003c\u003c \"\\n\";\n    return 0;\n}\n```\n\n## Contributing\n\nFork, branch (`feature/yourfeature`), commit, push, PR.\n\n## License\n\n[MIT License](LICENSE)\n\n## Acknowledgments\n\n- [Pinata](https://pinata.cloud/)\n- [Project-Template](https://github.com/genyleap/Project-Template)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenyleap%2Fpinatapipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenyleap%2Fpinatapipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenyleap%2Fpinatapipe/lists"}