autogit-tool 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +343 -24
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,42 +1,361 @@
1
- # autogit-cli
2
- Automate project documentation, GitHub publishing, and social media content generation
1
+ # AutoGit
3
2
 
4
- ## Overview
5
- The autogit-cli project is designed to streamline the process of managing project documentation, publishing to GitHub, and generating social media content. This tool aims to simplify the workflow, reducing the time and effort required to maintain a project's online presence.
3
+ [![npm version](https://img.shields.io/npm/v/autogit-tool.svg)](https://www.npmjs.com/package/autogit-tool)
4
+ [![npm downloads](https://img.shields.io/npm/dm/autogit-tool.svg)](https://www.npmjs.com/package/autogit-tool)
5
+ [![license](https://img.shields.io/npm/l/autogit-tool.svg)](https://github.com/membranegaming/autogit-cli/blob/main/LICENSE)
6
+ [![node](https://img.shields.io/node/v/autogit-tool.svg)](https://www.npmjs.com/package/autogit-tool)
6
7
 
7
- ## Tech Stack
8
- - TypeScript
9
- - Package Manager: npm
10
- - Build System: npm scripts
8
+ > Run `autogit` in any project folder. It reads your code, writes your docs, commits, pushes to GitHub, updates your resume, and generates your LinkedIn post — in one command.
11
9
 
12
- ## Features
13
- - Automate project documentation
14
- - GitHub publishing
15
- - Social media content generation
10
+ ```bash
11
+ npm install -g autogit-tool
12
+ autogit
13
+ ```
14
+
15
+ ---
16
+
17
+ ## What it does
18
+
19
+ When you run `autogit` inside a project directory it:
20
+
21
+ 1. Scans the codebase and detects languages, frameworks, databases, CI/CD, deployment config
22
+ 2. Generates or improves your README
23
+ 3. Creates `PROJECT_SUMMARY.md`, `ARCHITECTURE.md`, and `CONTRIBUTING.md` if missing
24
+ 4. Generates a commit message using AI (Conventional Commits format)
25
+ 5. Stages, commits, and pushes to GitHub — creating the repository if it doesn't exist
26
+ 6. Updates your LaTeX resume with an AI-written project entry
27
+ 7. Generates a LinkedIn post, X (Twitter) post, DEV.to draft, and resume bullet
28
+
29
+ Everything is previewed and requires confirmation before writing. Pass `--yes` to skip all prompts.
30
+
31
+ ---
16
32
 
17
33
  ## Installation
18
- To get started with autogit-cli, follow these steps:
19
- 1. **Clone the repository**:
34
+
20
35
  ```bash
21
- git clone https://github.com/USERNAME/autogit-cli.git
36
+ npm install -g autogit-tool
22
37
  ```
23
- 2. **Navigate to the project directory**:
38
+
39
+ **npm page:** https://www.npmjs.com/package/autogit-tool
40
+
41
+ **Requirements:** Node.js 18+, Git
42
+
43
+ ---
44
+
45
+ ## Quick start
46
+
24
47
  ```bash
25
- cd autogit-cli
48
+ # 1. Go to any project folder
49
+ cd my-project
50
+
51
+ # 2. Set up your GitHub token (first time only)
52
+ autogit login
53
+
54
+ # 3. Set up your AI provider (first time only)
55
+ autogit config
56
+
57
+ # 4. Run
58
+ autogit
59
+ ```
60
+
61
+ ---
62
+
63
+ ## AI Providers
64
+
65
+ AutoGit supports 13 AI providers. Configure via `autogit config` or environment variables.
66
+
67
+ | Provider | Env Variable | Default Model | Free Tier |
68
+ |---|---|---|---|
69
+ | **Groq** | `GROQ_API_KEY` | `llama-3.3-70b-versatile` | ✔ Yes |
70
+ | **OpenAI** | `OPENAI_API_KEY` | `gpt-4o-mini` | ✘ No |
71
+ | **Anthropic** | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` | ✘ No |
72
+ | **Google Gemini** | `GEMINI_API_KEY` | `gemini-1.5-flash` | ✔ Yes |
73
+ | **Mistral** | `MISTRAL_API_KEY` | `mistral-large-latest` | ✔ Limited |
74
+ | **DeepSeek** | `DEEPSEEK_API_KEY` | `deepseek-chat` | ✔ Limited |
75
+ | **Perplexity** | `PERPLEXITY_API_KEY` | `llama-3.1-sonar-large-128k-online` | ✘ No |
76
+ | **Together AI** | `TOGETHER_API_KEY` | `meta-llama/Llama-3.3-70B-Instruct-Turbo` | ✔ Limited |
77
+ | **Cohere** | `COHERE_API_KEY` | `command-r-plus-08-2024` | ✔ Limited |
78
+ | **xAI (Grok)** | `XAI_API_KEY` | `grok-3-fast-beta` | ✘ No |
79
+ | **OpenRouter** | `OPENROUTER_API_KEY` | `anthropic/claude-sonnet-4-20250514` | ✔ Free models |
80
+ | **Ollama** | `OLLAMA_ENDPOINT` | `llama3.1` | ✔ Local |
81
+ | **Azure OpenAI** | `AZURE_OPENAI_KEY` | your deployment | — |
82
+
83
+ **Recommended for free usage:** [Groq](https://console.groq.com) — fastest free API, no credit card required.
84
+
85
+ ### Configure interactively
86
+
87
+ ```bash
88
+ autogit config
89
+ # → AI Provider & Keys → select provider → paste key
90
+ ```
91
+
92
+ ### Configure via environment variable
93
+
94
+ ```powershell
95
+ # PowerShell
96
+ $env:AUTOGIT_AI_PROVIDER = "groq"
97
+ $env:GROQ_API_KEY = "gsk_your_key_here"
26
98
  ```
27
- 3. **Install dependencies**:
99
+
28
100
  ```bash
29
- npm install
101
+ # Bash / Zsh
102
+ export AUTOGIT_AI_PROVIDER=groq
103
+ export GROQ_API_KEY=gsk_your_key_here
30
104
  ```
31
105
 
106
+ ```cmd
107
+ # Windows CMD
108
+ set AUTOGIT_AI_PROVIDER=groq
109
+ set GROQ_API_KEY=gsk_your_key_here
110
+ ```
111
+
112
+ ### Verify your key
113
+
114
+ ```bash
115
+ autogit config --test
116
+ ```
117
+
118
+ ---
119
+
120
+ ## GitHub Authentication
121
+
122
+ ```bash
123
+ autogit login
124
+ ```
125
+
126
+ The login wizard will:
127
+ - Auto-import your token if the [GitHub CLI](https://cli.github.com) is installed and authenticated
128
+ - Otherwise prompt you to paste a Personal Access Token
129
+
130
+ **Create a token:** https://github.com/settings/tokens/new
131
+ Required scopes: `repo`, `read:user`
132
+
133
+ You can also set it via environment variable:
134
+
135
+ ```bash
136
+ export GITHUB_TOKEN=github_pat_your_token_here
137
+ ```
138
+
139
+ **Troubleshooting bad credentials:**
140
+
141
+ ```bash
142
+ autogit login --check # shows which token source is active and verifies it
143
+ ```
144
+
145
+ If `GITHUB_TOKEN` is set in your environment and invalid, clear it:
146
+
147
+ ```powershell
148
+ # PowerShell — current session only
149
+ Remove-Item Env:GITHUB_TOKEN
150
+
151
+ # PowerShell — permanent (removes from Windows user environment)
152
+ [System.Environment]::SetEnvironmentVariable("GITHUB_TOKEN", $null, "User")
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Resume Auto-Update
158
+
159
+ AutoGit can automatically add a project entry to your LaTeX resume every time you run `autogit`.
160
+
161
+ ### Setup (one time)
162
+
163
+ ```bash
164
+ autogit resume --setup
165
+ ```
166
+
167
+ Point it at your `.tex` resume file. AutoGit will:
168
+ - Detect your `\section{Projects}` block
169
+ - Insert an AI-generated `\resumeProjectHeading` entry at the top
170
+ - Create a timestamped `.backup-<timestamp>.tex` before writing
171
+ - Offer to copy the updated file to `~/Documents/resume/`
172
+
173
+ ### Usage
174
+
175
+ ```bash
176
+ autogit resume # update resume for current project
177
+ autogit resume --no-ai # use template bullets instead of AI
178
+ autogit resume --show # check configured path
179
+ autogit resume --setup # reconfigure
180
+ ```
181
+
182
+ The resume step runs automatically in the main pipeline. Skip it with:
183
+
184
+ ```bash
185
+ autogit --skip-resume
186
+ ```
187
+
188
+ ---
189
+
190
+ ## All Commands
191
+
192
+ | Command | Description |
193
+ |---|---|
194
+ | `autogit` | Full pipeline: scan → docs → resume → commit → push → social |
195
+ | `autogit init` | Initialize Git and generate `.gitignore` |
196
+ | `autogit docs` | Generate `PROJECT_SUMMARY.md`, `ARCHITECTURE.md`, `CONTRIBUTING.md` |
197
+ | `autogit readme` | Generate or update README only |
198
+ | `autogit publish` | Commit and push to GitHub |
199
+ | `autogit github` | Create GitHub repository |
200
+ | `autogit linkedin` | Generate all social content (short/medium/long LinkedIn, Twitter, DEV.to, resume bullet) |
201
+ | `autogit release` | Create a GitHub release with tag and notes |
202
+ | `autogit resume` | Update LaTeX resume with current project |
203
+ | `autogit analyze` | Project score card: documentation, code quality, maintainability |
204
+ | `autogit doctor` | Check that Git, Node.js, GitHub token, and AI keys are all working |
205
+ | `autogit config` | Interactive configuration wizard |
206
+ | `autogit login` | Authenticate with GitHub |
207
+
208
+ ---
209
+
210
+ ## All Flags
211
+
212
+ | Flag | Description |
213
+ |---|---|
214
+ | `--yes` | Skip all confirmation prompts |
215
+ | `--dry-run` | Preview all changes without writing anything |
216
+ | `--verbose` | Show detailed output |
217
+ | `--quiet` | Suppress non-essential output |
218
+ | `--private` | Create private GitHub repository |
219
+ | `--public` | Create public GitHub repository |
220
+ | `--skip-readme` | Skip README generation |
221
+ | `--skip-github` | Skip GitHub operations |
222
+ | `--skip-linkedin` | Skip social content generation |
223
+ | `--skip-resume` | Skip resume auto-update |
224
+ | `--no-ai` | Use templates instead of AI for all generation |
225
+ | `--regenerate` | Force-regenerate existing documentation files |
226
+
227
+ ---
228
+
32
229
  ## Configuration
33
- No environment variables are required for this project.
34
230
 
35
- ## Usage
36
- To run the autogit-cli, use the following command:
231
+ Settings are stored in `~/.autogit/config.json`.
232
+
233
+ ```bash
234
+ autogit config # interactive wizard
235
+ autogit config --list # view current config (secrets masked)
236
+ autogit config --debug # show which env vars and config keys are active
237
+ autogit config --test # verify active AI provider key with a live call
238
+ autogit config --set ai.provider=groq # set a single value
239
+ autogit config --get ai.provider # read a single value
240
+ ```
241
+
242
+ ### Full config structure
243
+
244
+ ```json
245
+ {
246
+ "github": {
247
+ "token": "github_pat_..."
248
+ },
249
+ "ai": {
250
+ "provider": "groq",
251
+ "model": "",
252
+ "groqKey": "gsk_..."
253
+ },
254
+ "defaults": {
255
+ "visibility": "public",
256
+ "branch": "main",
257
+ "license": "MIT",
258
+ "commitStyle": "conventional",
259
+ "autoConfirm": false,
260
+ "linkedinStyle": "professional"
261
+ },
262
+ "resume": {
263
+ "path": "/Users/you/Documents/resume/resume.tex",
264
+ "ownerName": "Your Name",
265
+ "ownerEmail": "you@email.com",
266
+ "enabled": true
267
+ }
268
+ }
269
+ ```
270
+
271
+ ---
272
+
273
+ ## Project Detection
274
+
275
+ AutoGit auto-detects the following without any configuration:
276
+
277
+ **Languages:** TypeScript, JavaScript, Python, Rust, Go, Java, Kotlin, C#, PHP, Ruby, Swift, C/C++, Dart, Elixir, Scala
278
+
279
+ **Frameworks:** React, Next.js, Vue, Nuxt, Angular, Svelte, Express, Fastify, NestJS, Django, Flask, FastAPI, Spring Boot, Actix, Axum, Gin, Echo and more
280
+
281
+ **Databases:** PostgreSQL, MySQL, MongoDB, Redis, SQLite, DynamoDB, Supabase, Firebase
282
+
283
+ **Deployment:** Docker, Vercel, Netlify, Fly.io, Render, Heroku, AWS SAM, Terraform, Serverless Framework
284
+
285
+ **CI/CD:** GitHub Actions, GitLab CI, CircleCI, Jenkins, Travis CI, Azure Pipelines
286
+
287
+ Ignored directories: `node_modules`, `.git`, `dist`, `build`, `coverage`, `.next`, `vendor`, `target`, `__pycache__` and more
288
+
289
+ ---
290
+
291
+ ## Dry Run
292
+
293
+ Preview everything before it runs:
294
+
295
+ ```bash
296
+ autogit --dry-run
297
+ ```
298
+
299
+ Shows what would be changed without touching any file, making any commit, or calling GitHub.
300
+
301
+ ---
302
+
303
+ ## Use Without AI
304
+
305
+ Every feature has a template fallback. Run with `--no-ai` to skip all API calls:
306
+
37
307
  ```bash
38
- npm start
308
+ autogit --no-ai
39
309
  ```
40
310
 
311
+ README, docs, commit messages, resume entries, and social posts are all generated from templates based on the project analysis. Quality is lower but it works offline with no API keys.
312
+
313
+ ---
314
+
41
315
  ## Contributing
42
- Contributions are welcome! Please feel free to submit a Pull Request. Your input is valuable in helping to improve and expand the capabilities of autogit-cli.
316
+
317
+ Pull requests are welcome.
318
+
319
+ ```bash
320
+ git clone https://github.com/membranegaming/autogit-cli.git
321
+ cd autogit-cli
322
+ npm install
323
+ npm run build # compile TypeScript → dist/
324
+ npm link # install autogit globally from this local folder
325
+ ```
326
+
327
+ **Development scripts:**
328
+
329
+ | Script | What it does |
330
+ |---|---|
331
+ | `npm run build` | Compile TypeScript to `dist/` (required before running) |
332
+ | `npm run dev` | Watch mode — recompiles automatically on every file save |
333
+ | `npm start` | Run the CLI directly via `node dist/cli.js` |
334
+ | `npm run lint` | Run ESLint across `src/` |
335
+ | `npm link` | Register `autogit` as a global command pointing at this local build |
336
+ | `npm publish --access public` | Publish a new version to npm |
337
+
338
+ **Project structure:**
339
+
340
+ ```
341
+ src/
342
+ ├── cli.ts # Entry point — all commands registered here
343
+ ├── commands/ # One file per subcommand
344
+ ├── config/manager.ts # Config file + env var resolution
345
+ ├── scanner/ # File scanner + project analyzer
346
+ ├── ai/ # Provider abstraction + prompts
347
+ ├── services/ # readme, docs, git, github, resume, social, insights
348
+ ├── pipeline/main-pipeline.ts # Orchestrates the full autogit flow
349
+ └── utils/ # Logger, platform helpers
350
+ ```
351
+
352
+ ---
353
+
354
+ ## License
355
+
356
+ MIT © [Vardh Chhajer](https://github.com/membranegaming)
357
+
358
+ ---
359
+
360
+ **npm:** https://www.npmjs.com/package/autogit-tool
361
+ **GitHub:** https://github.com/membranegaming/autogit-cli
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autogit-tool",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Automate project documentation, GitHub publishing, and social media content generation — run autogit in any project folder",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",