fixdoc 0.0.1__tar.gz

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 (45) hide show
  1. fixdoc-0.0.1/PKG-INFO +261 -0
  2. fixdoc-0.0.1/README.md +230 -0
  3. fixdoc-0.0.1/pyproject.toml +59 -0
  4. fixdoc-0.0.1/setup.cfg +4 -0
  5. fixdoc-0.0.1/src/fixdoc/__init__.py +8 -0
  6. fixdoc-0.0.1/src/fixdoc/cli.py +26 -0
  7. fixdoc-0.0.1/src/fixdoc/commands/__init__.py +11 -0
  8. fixdoc-0.0.1/src/fixdoc/commands/analyze.py +313 -0
  9. fixdoc-0.0.1/src/fixdoc/commands/capture.py +109 -0
  10. fixdoc-0.0.1/src/fixdoc/commands/capture_handlers.py +298 -0
  11. fixdoc-0.0.1/src/fixdoc/commands/delete.py +72 -0
  12. fixdoc-0.0.1/src/fixdoc/commands/edit.py +118 -0
  13. fixdoc-0.0.1/src/fixdoc/commands/manage.py +67 -0
  14. fixdoc-0.0.1/src/fixdoc/commands/search.py +65 -0
  15. fixdoc-0.0.1/src/fixdoc/commands/sync.py +268 -0
  16. fixdoc-0.0.1/src/fixdoc/config.py +113 -0
  17. fixdoc-0.0.1/src/fixdoc/fix.py +19 -0
  18. fixdoc-0.0.1/src/fixdoc/formatter.py +62 -0
  19. fixdoc-0.0.1/src/fixdoc/git.py +263 -0
  20. fixdoc-0.0.1/src/fixdoc/markdown_parser.py +106 -0
  21. fixdoc-0.0.1/src/fixdoc/models.py +83 -0
  22. fixdoc-0.0.1/src/fixdoc/parsers/__init__.py +24 -0
  23. fixdoc-0.0.1/src/fixdoc/parsers/base.py +131 -0
  24. fixdoc-0.0.1/src/fixdoc/parsers/kubernetes.py +584 -0
  25. fixdoc-0.0.1/src/fixdoc/parsers/router.py +160 -0
  26. fixdoc-0.0.1/src/fixdoc/parsers/terraform.py +409 -0
  27. fixdoc-0.0.1/src/fixdoc/storage.py +146 -0
  28. fixdoc-0.0.1/src/fixdoc/sync_engine.py +330 -0
  29. fixdoc-0.0.1/src/fixdoc/terraform_parser.py +135 -0
  30. fixdoc-0.0.1/src/fixdoc.egg-info/PKG-INFO +261 -0
  31. fixdoc-0.0.1/src/fixdoc.egg-info/SOURCES.txt +43 -0
  32. fixdoc-0.0.1/src/fixdoc.egg-info/dependency_links.txt +1 -0
  33. fixdoc-0.0.1/src/fixdoc.egg-info/entry_points.txt +2 -0
  34. fixdoc-0.0.1/src/fixdoc.egg-info/requires.txt +8 -0
  35. fixdoc-0.0.1/src/fixdoc.egg-info/top_level.txt +1 -0
  36. fixdoc-0.0.1/tests/test_analyzer.py +145 -0
  37. fixdoc-0.0.1/tests/test_config.py +143 -0
  38. fixdoc-0.0.1/tests/test_edit.py +150 -0
  39. fixdoc-0.0.1/tests/test_kubernetes_parser.py +475 -0
  40. fixdoc-0.0.1/tests/test_markdown_parser.py +194 -0
  41. fixdoc-0.0.1/tests/test_models.py +138 -0
  42. fixdoc-0.0.1/tests/test_parser_router.py +270 -0
  43. fixdoc-0.0.1/tests/test_storage.py +156 -0
  44. fixdoc-0.0.1/tests/test_sync.py +302 -0
  45. fixdoc-0.0.1/tests/test_terraform_parser.py +414 -0
fixdoc-0.0.1/PKG-INFO ADDED
@@ -0,0 +1,261 @@
1
+ Metadata-Version: 2.4
2
+ Name: fixdoc
3
+ Version: 0.0.1
4
+ Summary: Capture and search infrastructure fixes for cloud/SRE engineers
5
+ Author-email: Fiyi <fiyignk@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/fiyiogunkoya/FixDoc
8
+ Keywords: devops,terraform,infrastructure,documentation,cli
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: System Administrators
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: System :: Systems Administration
21
+ Classifier: Topic :: Utilities
22
+ Requires-Python: >=3.9
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: click>=8.0.0
25
+ Requires-Dist: pyyaml>=6.0.0
26
+ Provides-Extra: dev
27
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
28
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
29
+ Requires-Dist: black>=23.0.0; extra == "dev"
30
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
31
+
32
+ # FixDoc
33
+
34
+ A CLI tool for cloud engineers to capture and search infrastructure fixes. Stop losing tribal knowledge in Slack threads and personal notes.
35
+
36
+ ## The Problem
37
+
38
+ Infrastructure errors repeat. The same RBAC misconfiguration, the same Terraform state lock—solved six months ago, but the fix is buried in Slack or locked in someone's head. When engineers leave, the knowledge leaves with them. Teams waste hours debugging problems they've already solved.
39
+
40
+ ## The Solution
41
+
42
+ FixDoc captures cloud fixes in seconds and makes them searchable. Pipe your Terraform or kubectl error output directly to FixDoc, document what fixed it, and move on. Next time you or a teammate hit a similar issue, search your fix history instead of debugging from scratch.
43
+
44
+ **Core features:**
45
+
46
+ - **Capture fixes fast** - Quick mode for one-liner captures, pipe errors directly from Terraform or kubectl
47
+ - **Search your history** - Find past fixes by keyword, tag, or error message
48
+ - **Analyze terraform plans** - Get warnings about resources that have caused problems before
49
+ - **Multi-cloud error parsing** - Auto-detect and parse errors from Terraform (AWS, Azure, GCP) and Kubernetes
50
+ - **Team sync via Git** - Share fixes across your team through a shared Git repo
51
+ - **Markdown export** - Every fix generates shareable documentation
52
+
53
+ ## Installation
54
+
55
+ ```bash
56
+ # Clone the repo
57
+ git clone https://github.com/fiyiogunkoya/fixdoc.git
58
+ cd fixdoc
59
+
60
+ # Recommended: set up a virtual environment
61
+ python -m venv venv
62
+ source venv/bin/activate
63
+
64
+ # Install
65
+ pip install -e .
66
+ ```
67
+
68
+ Requires Python 3.9+.
69
+
70
+ ## Quick Start
71
+
72
+ ### Capture a Fix
73
+
74
+ **Pipe terraform errors directly:**
75
+ ```bash
76
+ terraform apply 2>&1 | fixdoc capture
77
+ ```
78
+
79
+ FixDoc parses the error, extracts the resource and error code, and prompts you only for the fix:
80
+
81
+ ```
82
+ ──────────────────────────────────────────────────
83
+ Captured from terraform:
84
+
85
+ Resource: azurerm_databricks_workspace.main
86
+ File: modules/databricks/main.tf:15
87
+ Error: KeyVaultAccessDenied: The operation does not have permission...
88
+ ──────────────────────────────────────────────────
89
+
90
+ What fixed it? > Added managed identity to Key Vault access policy
91
+
92
+ Fix captured: a1b2c3d4(unique fix id)
93
+ ```
94
+
95
+ **Pipe kubectl errors:**
96
+ ```bash
97
+ kubectl apply -f deployment.yaml 2>&1 | fixdoc capture
98
+ ```
99
+
100
+ **Interactive mode:**
101
+ ```bash
102
+ fixdoc capture
103
+ ```
104
+
105
+ **Quick mode:**
106
+ ```bash
107
+ fixdoc capture -q "User couldn't access storage | Added blob contributor role" -t storage,rbac
108
+ ```
109
+
110
+ ### Search Your Fixes
111
+
112
+ ```bash
113
+ fixdoc search "storage account"
114
+ fixdoc search rbac
115
+ fixdoc search "access denied"
116
+ ```
117
+
118
+ ### Edit a Fix
119
+
120
+ ```bash
121
+ # Update specific fields
122
+ fixdoc edit a1b2c3d4 --resolution "Updated fix details"
123
+ fixdoc edit a1b2c3d4 --tags "storage,rbac,new_tag"
124
+
125
+ # Interactive edit
126
+ fixdoc edit a1b2c3d4 -I
127
+ ```
128
+
129
+ ### Analyze Terraform Plans
130
+
131
+ Before running `terraform apply`, check for known issues:
132
+
133
+ ```bash
134
+ terraform plan -out=plan.tfplan
135
+ terraform show -json plan.tfplan > plan.json
136
+ fixdoc analyze plan.json
137
+ ```
138
+
139
+ Output:
140
+ ```
141
+ Found 2 potential issue(s) based on your fix history:
142
+
143
+ X azurerm_storage_account.main may relate to FIX-a1b2c3d4
144
+ Previous issue: Users couldn't access blob storage
145
+ Resolution: Added storage blob data contributor role
146
+ Tags: azurerm_storage_account,rbac
147
+
148
+ X azurerm_key_vault.main may relate to FIX-b5c6d7e8
149
+ Previous issue: Key Vault access denied for Databricks
150
+ Resolution: Added access policy with wrapKey permission
151
+ Tags: azurerm_key_vault,rbac
152
+
153
+ Run `fixdoc show <fix-id>` for full details on any fix.
154
+ ```
155
+
156
+ ### Sync Fixes with Your Team
157
+
158
+ Share fixes across your organization using a shared Git repository:
159
+
160
+ ```bash
161
+ # Initialize sync with a remote repo
162
+ fixdoc sync init git@github.com:your-org/team-fixes.git
163
+
164
+ # Push your local fixes to the shared repo
165
+ fixdoc sync push -m "Added storage account fixes"
166
+
167
+ # Pull fixes from your team
168
+ fixdoc sync pull
169
+
170
+ # Check sync status
171
+ fixdoc sync status
172
+ ```
173
+
174
+ Fixes marked as private (`is_private`) are excluded from sync.
175
+
176
+ ### Other Commands
177
+
178
+ ```bash
179
+ fixdoc list # List all fixes
180
+ fixdoc show a1b2c3d4 # Show full details
181
+ fixdoc delete a1b2c3d4 # Delete a fix
182
+ fixdoc delete --purge # Delete all fixes
183
+ fixdoc stats # View statistics
184
+ ```
185
+
186
+ ## Fix Fields
187
+
188
+ | Field | Required | Description |
189
+ |-------|----------|-------------|
190
+ | Issue | Yes | What was the problem? |
191
+ | Resolution | Yes | How did you fix it? |
192
+ | Error excerpt | No | Relevant error message or logs |
193
+ | Tags | No | Comma-separated keywords (resource types, categories) |
194
+ | Notes | No | Gotchas, misleading directions, additional context |
195
+
196
+ **Tip**: Use resource types as tags (e.g., `azurerm_storage_account`, `azurerm_key_vault`) to enable terraform plan analysis.
197
+
198
+ ## Storage
199
+
200
+ FixDoc stores everything locally(cloud storage feature WIP):
201
+
202
+ ```
203
+ ~/.fixdoc/
204
+ ├── fixes.json # JSON database of all fixes
205
+ ├── config.yaml # Sync and user configuration
206
+ └── docs/ # Generated markdown files
207
+ ├── <uuid>.md
208
+ └── ...
209
+ ```
210
+
211
+ Markdown files are generated alongside the JSON database, so you can:
212
+ - Push them to a wiki/confluence
213
+ - Commit them to a repo
214
+ - Share them with your team via `fixdoc sync`
215
+
216
+ ## Philosophy
217
+
218
+ **Speed is everything.** Engineers won't document fixes if it takes too long. FixDoc is designed to capture information in seconds:
219
+
220
+ - Pipe errors directly from terraform or kubectl
221
+ - Quick mode for one-liner captures
222
+ - Auto-extract resource, file, and error code
223
+ - Optional fields you can skip
224
+
225
+ The goal is to build a searchable knowledge base over time, not to write perfect documentation for each fix.
226
+
227
+ ---
228
+
229
+ ## Roadmap
230
+
231
+ | Feature | Description |
232
+ |---------|-------------|
233
+ | Similar fix suggestions | Show matching fixes before creating duplicates |
234
+ | Import/Export | `fixdoc export` and `fixdoc import --merge` |
235
+ | Search filters | Filter by tags, date range |
236
+ | Additional CLI parsers | AWS CLI, Azure CLI error parsers |
237
+ | AI-suggested fixes | Suggest resolutions from error context + fix history |
238
+ | SDK refactor | Use as library: `from fixdoc import FixDoc` |
239
+
240
+ ---
241
+
242
+ ## Current Status
243
+
244
+ **v0.0.1 (Alpha)**
245
+
246
+ What works today:
247
+ - Capture fixes (interactive, quick mode, piped input)
248
+ - Auto-parse Terraform apply output (resource, file, line, error code) for AWS, Azure, and GCP
249
+ - Auto-parse Kubernetes/kubectl errors
250
+ - Search fixes by keyword
251
+ - Edit existing fixes
252
+ - Analyze terraform plans against fix history
253
+ - Delete individual fixes or purge all
254
+ - Git-based team sync (init, push, pull, status)
255
+ - Store as JSON + markdown
256
+
257
+ ---
258
+
259
+ ## Contributing
260
+
261
+ Contributions are welcome and encouraged! Please open an issue or PR.
fixdoc-0.0.1/README.md ADDED
@@ -0,0 +1,230 @@
1
+ # FixDoc
2
+
3
+ A CLI tool for cloud engineers to capture and search infrastructure fixes. Stop losing tribal knowledge in Slack threads and personal notes.
4
+
5
+ ## The Problem
6
+
7
+ Infrastructure errors repeat. The same RBAC misconfiguration, the same Terraform state lock—solved six months ago, but the fix is buried in Slack or locked in someone's head. When engineers leave, the knowledge leaves with them. Teams waste hours debugging problems they've already solved.
8
+
9
+ ## The Solution
10
+
11
+ FixDoc captures cloud fixes in seconds and makes them searchable. Pipe your Terraform or kubectl error output directly to FixDoc, document what fixed it, and move on. Next time you or a teammate hit a similar issue, search your fix history instead of debugging from scratch.
12
+
13
+ **Core features:**
14
+
15
+ - **Capture fixes fast** - Quick mode for one-liner captures, pipe errors directly from Terraform or kubectl
16
+ - **Search your history** - Find past fixes by keyword, tag, or error message
17
+ - **Analyze terraform plans** - Get warnings about resources that have caused problems before
18
+ - **Multi-cloud error parsing** - Auto-detect and parse errors from Terraform (AWS, Azure, GCP) and Kubernetes
19
+ - **Team sync via Git** - Share fixes across your team through a shared Git repo
20
+ - **Markdown export** - Every fix generates shareable documentation
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ # Clone the repo
26
+ git clone https://github.com/fiyiogunkoya/fixdoc.git
27
+ cd fixdoc
28
+
29
+ # Recommended: set up a virtual environment
30
+ python -m venv venv
31
+ source venv/bin/activate
32
+
33
+ # Install
34
+ pip install -e .
35
+ ```
36
+
37
+ Requires Python 3.9+.
38
+
39
+ ## Quick Start
40
+
41
+ ### Capture a Fix
42
+
43
+ **Pipe terraform errors directly:**
44
+ ```bash
45
+ terraform apply 2>&1 | fixdoc capture
46
+ ```
47
+
48
+ FixDoc parses the error, extracts the resource and error code, and prompts you only for the fix:
49
+
50
+ ```
51
+ ──────────────────────────────────────────────────
52
+ Captured from terraform:
53
+
54
+ Resource: azurerm_databricks_workspace.main
55
+ File: modules/databricks/main.tf:15
56
+ Error: KeyVaultAccessDenied: The operation does not have permission...
57
+ ──────────────────────────────────────────────────
58
+
59
+ What fixed it? > Added managed identity to Key Vault access policy
60
+
61
+ Fix captured: a1b2c3d4(unique fix id)
62
+ ```
63
+
64
+ **Pipe kubectl errors:**
65
+ ```bash
66
+ kubectl apply -f deployment.yaml 2>&1 | fixdoc capture
67
+ ```
68
+
69
+ **Interactive mode:**
70
+ ```bash
71
+ fixdoc capture
72
+ ```
73
+
74
+ **Quick mode:**
75
+ ```bash
76
+ fixdoc capture -q "User couldn't access storage | Added blob contributor role" -t storage,rbac
77
+ ```
78
+
79
+ ### Search Your Fixes
80
+
81
+ ```bash
82
+ fixdoc search "storage account"
83
+ fixdoc search rbac
84
+ fixdoc search "access denied"
85
+ ```
86
+
87
+ ### Edit a Fix
88
+
89
+ ```bash
90
+ # Update specific fields
91
+ fixdoc edit a1b2c3d4 --resolution "Updated fix details"
92
+ fixdoc edit a1b2c3d4 --tags "storage,rbac,new_tag"
93
+
94
+ # Interactive edit
95
+ fixdoc edit a1b2c3d4 -I
96
+ ```
97
+
98
+ ### Analyze Terraform Plans
99
+
100
+ Before running `terraform apply`, check for known issues:
101
+
102
+ ```bash
103
+ terraform plan -out=plan.tfplan
104
+ terraform show -json plan.tfplan > plan.json
105
+ fixdoc analyze plan.json
106
+ ```
107
+
108
+ Output:
109
+ ```
110
+ Found 2 potential issue(s) based on your fix history:
111
+
112
+ X azurerm_storage_account.main may relate to FIX-a1b2c3d4
113
+ Previous issue: Users couldn't access blob storage
114
+ Resolution: Added storage blob data contributor role
115
+ Tags: azurerm_storage_account,rbac
116
+
117
+ X azurerm_key_vault.main may relate to FIX-b5c6d7e8
118
+ Previous issue: Key Vault access denied for Databricks
119
+ Resolution: Added access policy with wrapKey permission
120
+ Tags: azurerm_key_vault,rbac
121
+
122
+ Run `fixdoc show <fix-id>` for full details on any fix.
123
+ ```
124
+
125
+ ### Sync Fixes with Your Team
126
+
127
+ Share fixes across your organization using a shared Git repository:
128
+
129
+ ```bash
130
+ # Initialize sync with a remote repo
131
+ fixdoc sync init git@github.com:your-org/team-fixes.git
132
+
133
+ # Push your local fixes to the shared repo
134
+ fixdoc sync push -m "Added storage account fixes"
135
+
136
+ # Pull fixes from your team
137
+ fixdoc sync pull
138
+
139
+ # Check sync status
140
+ fixdoc sync status
141
+ ```
142
+
143
+ Fixes marked as private (`is_private`) are excluded from sync.
144
+
145
+ ### Other Commands
146
+
147
+ ```bash
148
+ fixdoc list # List all fixes
149
+ fixdoc show a1b2c3d4 # Show full details
150
+ fixdoc delete a1b2c3d4 # Delete a fix
151
+ fixdoc delete --purge # Delete all fixes
152
+ fixdoc stats # View statistics
153
+ ```
154
+
155
+ ## Fix Fields
156
+
157
+ | Field | Required | Description |
158
+ |-------|----------|-------------|
159
+ | Issue | Yes | What was the problem? |
160
+ | Resolution | Yes | How did you fix it? |
161
+ | Error excerpt | No | Relevant error message or logs |
162
+ | Tags | No | Comma-separated keywords (resource types, categories) |
163
+ | Notes | No | Gotchas, misleading directions, additional context |
164
+
165
+ **Tip**: Use resource types as tags (e.g., `azurerm_storage_account`, `azurerm_key_vault`) to enable terraform plan analysis.
166
+
167
+ ## Storage
168
+
169
+ FixDoc stores everything locally(cloud storage feature WIP):
170
+
171
+ ```
172
+ ~/.fixdoc/
173
+ ├── fixes.json # JSON database of all fixes
174
+ ├── config.yaml # Sync and user configuration
175
+ └── docs/ # Generated markdown files
176
+ ├── <uuid>.md
177
+ └── ...
178
+ ```
179
+
180
+ Markdown files are generated alongside the JSON database, so you can:
181
+ - Push them to a wiki/confluence
182
+ - Commit them to a repo
183
+ - Share them with your team via `fixdoc sync`
184
+
185
+ ## Philosophy
186
+
187
+ **Speed is everything.** Engineers won't document fixes if it takes too long. FixDoc is designed to capture information in seconds:
188
+
189
+ - Pipe errors directly from terraform or kubectl
190
+ - Quick mode for one-liner captures
191
+ - Auto-extract resource, file, and error code
192
+ - Optional fields you can skip
193
+
194
+ The goal is to build a searchable knowledge base over time, not to write perfect documentation for each fix.
195
+
196
+ ---
197
+
198
+ ## Roadmap
199
+
200
+ | Feature | Description |
201
+ |---------|-------------|
202
+ | Similar fix suggestions | Show matching fixes before creating duplicates |
203
+ | Import/Export | `fixdoc export` and `fixdoc import --merge` |
204
+ | Search filters | Filter by tags, date range |
205
+ | Additional CLI parsers | AWS CLI, Azure CLI error parsers |
206
+ | AI-suggested fixes | Suggest resolutions from error context + fix history |
207
+ | SDK refactor | Use as library: `from fixdoc import FixDoc` |
208
+
209
+ ---
210
+
211
+ ## Current Status
212
+
213
+ **v0.0.1 (Alpha)**
214
+
215
+ What works today:
216
+ - Capture fixes (interactive, quick mode, piped input)
217
+ - Auto-parse Terraform apply output (resource, file, line, error code) for AWS, Azure, and GCP
218
+ - Auto-parse Kubernetes/kubectl errors
219
+ - Search fixes by keyword
220
+ - Edit existing fixes
221
+ - Analyze terraform plans against fix history
222
+ - Delete individual fixes or purge all
223
+ - Git-based team sync (init, push, pull, status)
224
+ - Store as JSON + markdown
225
+
226
+ ---
227
+
228
+ ## Contributing
229
+
230
+ Contributions are welcome and encouraged! Please open an issue or PR.
@@ -0,0 +1,59 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "fixdoc"
7
+ version = "0.0.1"
8
+ description = "Capture and search infrastructure fixes for cloud/SRE engineers"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ license = {text = "MIT"}
12
+ authors = [
13
+ { name="Fiyi", email="fiyignk@gmail.com" }
14
+ ]
15
+ keywords = ["devops", "terraform", "infrastructure", "documentation", "cli"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "Intended Audience :: System Administrators",
21
+ "License :: OSI Approved :: MIT License",
22
+ "Operating System :: OS Independent",
23
+ "Programming Language :: Python :: 3",
24
+ "Programming Language :: Python :: 3.9",
25
+ "Programming Language :: Python :: 3.10",
26
+ "Programming Language :: Python :: 3.11",
27
+ "Programming Language :: Python :: 3.12",
28
+ "Topic :: System :: Systems Administration",
29
+ "Topic :: Utilities",
30
+ ]
31
+ dependencies = [
32
+ "click>=8.0.0",
33
+ "pyyaml>=6.0.0",
34
+ ]
35
+
36
+ [project.scripts]
37
+ fixdoc = "fixdoc.fix:main"
38
+
39
+ [project.optional-dependencies]
40
+ dev = [
41
+ "pytest>=7.0.0",
42
+ "pytest-cov>=4.0.0",
43
+ "black>=23.0.0",
44
+ "ruff>=0.1.0",
45
+ ]
46
+
47
+ [tool.setuptools.packages.find]
48
+ where = ["src"]
49
+
50
+ [tool.black]
51
+ line-length = 88
52
+ target-version = ["py39"]
53
+
54
+ [tool.ruff]
55
+ line-length = 88
56
+ select = ["E", "F", "I", "N", "W"]
57
+
58
+ [project.urls]
59
+ Homepage = "https://github.com/fiyiogunkoya/FixDoc"
fixdoc-0.0.1/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,8 @@
1
+ """FixDoc - Capture and search infrastructure fixes for SRE/Devops engineers."""
2
+
3
+ __version__ = "0.1.0"
4
+
5
+ from .models import Fix
6
+ from .storage import FixRepository
7
+
8
+ __all__ = ["Fix", "FixRepository"]
@@ -0,0 +1,26 @@
1
+ """CLI assembly for fixdoc."""
2
+
3
+ import click
4
+
5
+ from .commands import capture, search, show, analyze, list_fixes, stats, delete, edit, sync
6
+
7
+
8
+ def create_cli() -> click.Group:
9
+
10
+ @click.group()
11
+ @click.version_option(version="0.1.0", prog_name="fixdoc")
12
+ def cli():
13
+ pass
14
+
15
+ # group commands
16
+ cli.add_command(capture)
17
+ cli.add_command(search)
18
+ cli.add_command(show)
19
+ cli.add_command(analyze)
20
+ cli.add_command(list_fixes)
21
+ cli.add_command(stats)
22
+ cli.add_command(delete)
23
+ cli.add_command(edit)
24
+ cli.add_command(sync)
25
+
26
+ return cli
@@ -0,0 +1,11 @@
1
+ """CLI commands for fixdoc."""
2
+
3
+ from .capture import capture
4
+ from .search import search, show
5
+ from .analyze import analyze
6
+ from .manage import list_fixes, stats
7
+ from .delete import delete
8
+ from .edit import edit
9
+ from .sync import sync
10
+
11
+ __all__ = ["capture", "search", "show", "analyze", "list_fixes", "stats", "delete", "edit", "sync"]