{"id":16342929,"url":"https://github.com/linuxmobile/commitia","last_synced_at":"2025-03-23T00:32:35.905Z","repository":{"id":250508044,"uuid":"834627811","full_name":"linuxmobile/commitia","owner":"linuxmobile","description":"Commit better with AI ✨","archived":false,"fork":false,"pushed_at":"2024-09-01T04:16:12.000Z","size":1103,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"google-ai","last_synced_at":"2025-03-17T09:11:32.990Z","etag":null,"topics":["ai","commit","git","github"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linuxmobile.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-07-27T21:20:39.000Z","updated_at":"2024-09-07T06:48:59.000Z","dependencies_parsed_at":"2024-08-25T23:07:44.576Z","dependency_job_id":"52b634b7-dbdf-40be-8732-53d64c7ee2d7","html_url":"https://github.com/linuxmobile/commitia","commit_stats":null,"previous_names":["linuxmobile/commitia"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmobile%2Fcommitia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmobile%2Fcommitia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmobile%2Fcommitia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmobile%2Fcommitia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linuxmobile","download_url":"https://codeload.github.com/linuxmobile/commitia/tar.gz/refs/heads/google-ai","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244257259,"owners_count":20424127,"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":["ai","commit","git","github"],"created_at":"2024-10-11T00:05:38.560Z","updated_at":"2025-03-23T00:32:35.573Z","avatar_url":"https://github.com/linuxmobile.png","language":"TypeScript","readme":"\u003cimg src=\"https://i.ibb.co/X7LR5J7/banner2.png\"\u003e\n\n# Commitia\n\n\u003e Commitiá is a commit message generator inspired by Argentine slang. In Argentina, we often say \"comentá\" with an accent on the final 'a' to mean \"comment\".\n\u003e Similarly, we use \"commitiá\" to refer to the action of committing changes to the GitHub stage.\n\u003e The name combines the English word \"commit\" with the Argentine way of adding emphasis, making it a playful and culturally unique term for the tool.\n\n## Features:\n\n- **Commit Message Generation**\n- **Multi-language Support**\n- **Git Integration**\n- **First Launch Setup**\n- **File Selection**\n\n## Installation\n\nTo install Commitia, run the following script:\n\n```bash\n./install.sh\n```\n\nBy default, this script will install Commitia in the `~/.local/bin` directory. If you prefer to install it in a different directory, you can specify the directory using the `--dir=DIR` argument:\n\n### Prerequisites\n\nMake sure you have Bun installed on your system. You can install Bun by following the instructions on their official website.\n\n### Running Commitiá\n\nTo run Commitia, use the following command:\n\n```bash\ncommitia ...\n```\n\nIf you want to be able to execute Commitia from any directory, you need to add `~/.local/bin` to your **shell's PATH**. You can do this by adding the following line to your `~/.bashrc` (for Bash) or `~/.zshrc` (for Zsh) file:\n\n```bash\nexport PATH=\"$HOME/.local/bin:$PATH\"\n\n# Next to it:\nsource ~/.bashrc # for Bash\nsource ~/.zshrc  # for zsh\n```\n\n\u003cdetails\u003e \u003csummary\u003e\u003ch2\u003eHow It Works\u003c/h2\u003e\u003c/summary\u003e\n\nCommitia is a Command Line Interface (CLI) built with **Bun**, **JavaScript**, and **TypeScript**. Below is an explanation of how the main components of the project work:\n\n### commitia.js\n\nThis file is the entry point of the CLI. It uses various libraries to handle user interactions and Git operations. The main flow of the program is as follows:\n\n- **Git Repository Verification**: Checks if the current directory is a Git repository.\n- **File Selection**: Allows the user to select the files they want to commit.\n- **Commit Message Generation**: Uses the Vercel SDK to generate a commit message based on the changes made.\n- **Confirmation and Commit**: Requests user confirmation before making the commit.\n\n### gitStageManager.ts\n\nThis file contains functions to handle Git operations, such as:\n\n- **checkIfGitRepo**: Verifies if the current directory is a Git repository.\n- **addStagedFiles**: Adds files to the Git stage.\n- **getDiffSummary**: Gets a summary of the differences between the staged files.\n- **commitStagedFiles**: Commits the staged files.\n\n### PROMPT_GENERATOR.ts\n\nThis file uses the Vercel SDK to generate commit messages. The main function is `generatePrompt`, which takes the added and deleted changes and generates a commit message using an AI model.\n\n\u003c/details\u003e\n\n## Why Bun, JavaScript, and TypeScript?\n\nI chose Bun because it is a fast, all-in-one runtime for JavaScript and TypeScript. This makes it easier to create efficient and fast CLI applications. JavaScript and TypeScript are versatile and widely-used languages, making the project accessible to a broad audience of developers.\n\n## Contributions\n\nContributions are welcome. If you have any suggestions or find any issues, **please open an issue or submit a pull request**.\n\n## License\n\nThis project is licensed under the MIT License.\n\n_This project was created using `bun init` in bun v1.1.20. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime._\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxmobile%2Fcommitia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuxmobile%2Fcommitia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxmobile%2Fcommitia/lists"}