{"id":29947738,"url":"https://github.com/teneplaysofficial/gitnifty","last_synced_at":"2026-01-20T17:00:57.691Z","repository":{"id":306041518,"uuid":"1023758913","full_name":"teneplaysofficial/gitnifty","owner":"teneplaysofficial","description":"A promise based, TypeScript-built Git utility for Node.js. Simplify Git operations with smart, automation ready commands for CLI tools and custom workflows. Clever Git, Made Simple.","archived":false,"fork":false,"pushed_at":"2025-09-08T12:53:27.000Z","size":179,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-26T19:02:56.134Z","etag":null,"topics":["automation","cli","git","git-commands","git-utils","gitnifty","javascript","nodejs","open-source","productivity","promise-based","typescript","utilities","version-control"],"latest_commit_sha":null,"homepage":"http://gitnifty.js.org","language":"TypeScript","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/teneplaysofficial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/funding.yml","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,"zenodo":null},"funding":{"github":"TenEplaysOfficial"}},"created_at":"2025-07-21T16:43:06.000Z","updated_at":"2025-08-12T09:31:32.000Z","dependencies_parsed_at":"2025-08-03T07:12:40.466Z","dependency_job_id":null,"html_url":"https://github.com/teneplaysofficial/gitnifty","commit_stats":null,"previous_names":["teneplaysofficial/gitnifty"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/teneplaysofficial/gitnifty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teneplaysofficial%2Fgitnifty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teneplaysofficial%2Fgitnifty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teneplaysofficial%2Fgitnifty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teneplaysofficial%2Fgitnifty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teneplaysofficial","download_url":"https://codeload.github.com/teneplaysofficial/gitnifty/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teneplaysofficial%2Fgitnifty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: 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":["automation","cli","git","git-commands","git-utils","gitnifty","javascript","nodejs","open-source","productivity","promise-based","typescript","utilities","version-control"],"created_at":"2025-08-03T07:10:36.662Z","updated_at":"2026-01-20T17:00:57.664Z","avatar_url":"https://github.com/teneplaysofficial.png","language":"TypeScript","funding_links":["https://github.com/sponsors/TenEplaysOfficial"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# GitNifty\n\n_A robust, promise-based Git utility for Node.js_\n\n[![npm version](https://img.shields.io/npm/v/gitnifty.svg?style=for-the-badge)](https://www.npmjs.com/package/gitnifty)\n[![License](https://img.shields.io/github/license/TenEplaysOfficial/gitnifty.svg?style=for-the-badge)](https://github.com/TenEplaysOfficial/gitnifty/blob/main/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/TenEplaysOfficial/gitnifty?style=for-the-badge)](https://github.com/TenEplaysOfficial/gitnifty/stargazers)\n[![Downloads](https://img.shields.io/npm/dm/gitnifty?style=for-the-badge)](https://www.npmjs.com/package/gitnifty)\n[![Type Support](https://img.shields.io/badge/type-support-blue?style=for-the-badge)](https://github.com/TenEplaysOfficial/gitnifty)\n[![Sponsor](https://img.shields.io/badge/funding-sponsor-yellow?style=for-the-badge)](https://github.com/sponsors/TenEplaysOfficial)\n[![Follow @teneplays on X](https://img.shields.io/badge/follow-@teneplays-fff?logo=x\u0026style=for-the-badge)](https://x.com/teneplays)\n\n\u003c/div\u003e\n\n**GitNifty** is a robust and promise-based Git utility for Node.js, offering developers smart, automation-ready commands for common Git operations. Ideal for building CLI tools, automation scripts, or custom Git workflows, GitNifty streamlines your Git interaction without complex shell scripting.\n\n\u003e Elevate your Git game with tools that are as delightful as they are effective.\n\nBuilt with TypeScript and powered by `child_process.exec`, GitNifty offers clean abstractions for Git commands while maintaining full control and flexibility.\n\n## Installation\n\n```sh\nyarn add gitnifty\n# or\nnpm install gitnifty\n```\n\n## Usage\n\nGitNifty exposes a `Git` class that can be used to interact with a Git repository via common commands like `user`, `currentBranch`, `checkWorkingDirClean`, and more.\n\n### Basic Example\n\n```ts\nimport { Git } from \"gitnifty\";\n\nconst git = new Git({ cwd: \"/path/to/your/repo\" });\n\nconst username = await git.getUserName(); // e.g., 'John Doe'\nconst branch = await git.getCurrentBranchName(); // e.g., 'main'\nconst isClean = await git.isWorkingDirClean(); // true or false\n```\n\n### Async Usage\n\n```ts\nasync function main() {\n  const git = new Git();\n  const userName = await git.getUserName();\n  console.log(\"Git User:\", userName);\n}\n\nmain();\n```\n\n## Features\n\n- **Smart Commands** - Get common Git info without writing raw shell logic.\n- **Promise-based** - Easy async integration with modern toolchains.\n- **Error-resilient** - Graceful handling for missing remotes or configs.\n- **Automation-ready** - Perfect for CLI tools, devops, and build scripts.\n- **Zero dependencies** - Lightweight and focused.\n- **TypeScript Support** - Fully typed API for better DX.\n\n## API\n\nYou can view the complete API reference [here](https://TenEplaysOfficial.github.io/gitnifty).\n\n## Requirements\n\n- Node.js v18+\n- Git installed and available in PATH\n- TypeScript (optional but supported)\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003eDoes it work outside of Git repositories?\u003c/summary\u003e\nSome commands require a valid Git repository (.git folder). Others like git config may still work.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCan I use this in a CLI tool?\u003c/summary\u003e\nYes! GitNifty is designed for CLI automation. You can use it in commander, yargs, or any script-based tool.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoes it support Git hooks or events?\u003c/summary\u003e\nComing soon! GitNifty will support basic hook helpers and lifecycle execution.\n\u003c/details\u003e\n\n## License\n\nReleased under the [Apache License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteneplaysofficial%2Fgitnifty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteneplaysofficial%2Fgitnifty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteneplaysofficial%2Fgitnifty/lists"}