gitwise-cli 0.24.2__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.
- gitwise_cli-0.24.2/.gitignore +38 -0
- gitwise_cli-0.24.2/CHANGELOG.md +313 -0
- gitwise_cli-0.24.2/LICENSE +21 -0
- gitwise_cli-0.24.2/PKG-INFO +151 -0
- gitwise_cli-0.24.2/README.md +122 -0
- gitwise_cli-0.24.2/bin/gitwise +24 -0
- gitwise_cli-0.24.2/gitwise/__init__.py +11 -0
- gitwise_cli-0.24.2/gitwise/__main__.py +113 -0
- gitwise_cli-0.24.2/gitwise/_cli_completions.py +88 -0
- gitwise_cli-0.24.2/gitwise/_cli_dispatch.py +469 -0
- gitwise_cli-0.24.2/gitwise/_cli_introspection.py +275 -0
- gitwise_cli-0.24.2/gitwise/_cli_parser.py +345 -0
- gitwise_cli-0.24.2/gitwise/_cli_setup_agents.py +439 -0
- gitwise_cli-0.24.2/gitwise/_i18n_data.json +1934 -0
- gitwise_cli-0.24.2/gitwise/_paths.py +22 -0
- gitwise_cli-0.24.2/gitwise/_runtime_config.py +246 -0
- gitwise_cli-0.24.2/gitwise/audit.py +338 -0
- gitwise_cli-0.24.2/gitwise/branches.py +183 -0
- gitwise_cli-0.24.2/gitwise/clean.py +197 -0
- gitwise_cli-0.24.2/gitwise/commit.py +142 -0
- gitwise_cli-0.24.2/gitwise/conflicts.py +112 -0
- gitwise_cli-0.24.2/gitwise/context.py +163 -0
- gitwise_cli-0.24.2/gitwise/design.py +383 -0
- gitwise_cli-0.24.2/gitwise/diff.py +309 -0
- gitwise_cli-0.24.2/gitwise/doctor.py +116 -0
- gitwise_cli-0.24.2/gitwise/git.py +254 -0
- gitwise_cli-0.24.2/gitwise/health.py +345 -0
- gitwise_cli-0.24.2/gitwise/i18n.py +99 -0
- gitwise_cli-0.24.2/gitwise/log.py +329 -0
- gitwise_cli-0.24.2/gitwise/merge.py +193 -0
- gitwise_cli-0.24.2/gitwise/optimize.py +212 -0
- gitwise_cli-0.24.2/gitwise/output.py +652 -0
- gitwise_cli-0.24.2/gitwise/pick.py +102 -0
- gitwise_cli-0.24.2/gitwise/pr.py +543 -0
- gitwise_cli-0.24.2/gitwise/py.typed +0 -0
- gitwise_cli-0.24.2/gitwise/schema.py +49 -0
- gitwise_cli-0.24.2/gitwise/setup.py +551 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/__init__.py +36 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/__init__.py +17 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/aider.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/base.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/codex.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/continue_adapter.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/cursor.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/opencode.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/adapters/pi.py +5 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/exec.py +449 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/format.py +164 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/plan.py +254 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/plan_gitfiles.py +167 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/plan_skills.py +256 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/__init__.py +96 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/aider.py +11 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/base.py +79 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/claude.py +408 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/codex.py +11 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/continue_adapter.py +11 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/cursor.py +11 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/opencode.py +11 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/providers/pi.py +11 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/state.py +141 -0
- gitwise_cli-0.24.2/gitwise/setup_agents/types.py +48 -0
- gitwise_cli-0.24.2/gitwise/show.py +118 -0
- gitwise_cli-0.24.2/gitwise/snapshot.py +110 -0
- gitwise_cli-0.24.2/gitwise/stash.py +188 -0
- gitwise_cli-0.24.2/gitwise/status.py +93 -0
- gitwise_cli-0.24.2/gitwise/suggest.py +148 -0
- gitwise_cli-0.24.2/gitwise/summarize.py +202 -0
- gitwise_cli-0.24.2/gitwise/sync.py +257 -0
- gitwise_cli-0.24.2/gitwise/tag.py +252 -0
- gitwise_cli-0.24.2/gitwise/undo.py +145 -0
- gitwise_cli-0.24.2/gitwise/update.py +42 -0
- gitwise_cli-0.24.2/gitwise/utils/__init__.py +1 -0
- gitwise_cli-0.24.2/gitwise/utils/git_output.py +51 -0
- gitwise_cli-0.24.2/gitwise/utils/json_envelope.py +58 -0
- gitwise_cli-0.24.2/gitwise/utils/parsing.py +34 -0
- gitwise_cli-0.24.2/gitwise/worktree.py +182 -0
- gitwise_cli-0.24.2/install.sh +53 -0
- gitwise_cli-0.24.2/pyproject.toml +121 -0
- gitwise_cli-0.24.2/share/agents/skills/git-audit/SKILL.md +25 -0
- gitwise_cli-0.24.2/share/agents/skills/git-clean/SKILL.md +22 -0
- gitwise_cli-0.24.2/share/agents/skills/git-optimize/SKILL.md +21 -0
- gitwise_cli-0.24.2/share/aider/CONVENTIONS.md.template +8 -0
- gitwise_cli-0.24.2/share/aider/aider.conf.yml.template +4 -0
- gitwise_cli-0.24.2/share/claude/CLAUDE.md.template +9 -0
- gitwise_cli-0.24.2/share/claude/rules/gitwise.md +16 -0
- gitwise_cli-0.24.2/share/claude/settings.json.template +47 -0
- gitwise_cli-0.24.2/share/claude/skills/git-audit/SKILL.md +25 -0
- gitwise_cli-0.24.2/share/claude/skills/git-clean/SKILL.md +22 -0
- gitwise_cli-0.24.2/share/claude/skills/git-optimize/SKILL.md +21 -0
- gitwise_cli-0.24.2/share/codex/agents/gitwise.toml.template +18 -0
- gitwise_cli-0.24.2/share/continue/rules/gitwise.md.template +14 -0
- gitwise_cli-0.24.2/share/cursor/rules/gitwise.mdc.template +16 -0
- gitwise_cli-0.24.2/share/git-config-modern.txt +48 -0
- gitwise_cli-0.24.2/share/hooks/commit-msg +22 -0
- gitwise_cli-0.24.2/share/hooks/pre-commit +19 -0
- gitwise_cli-0.24.2/share/opencode/agents/gitwise.md.template +14 -0
- gitwise_cli-0.24.2/share/pi/skills/gitwise.md.template +14 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/audit.json +40 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/branches.json +51 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/clean.json +52 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/commands.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/commit.json +63 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/completions.json +51 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/conflicts.json +46 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/context.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/diff.json +56 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/doctor.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/health.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/log.json +71 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/merge.json +63 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/optimize.json +44 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/pick.json +63 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/pr.json +51 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/schema.json +48 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/setup-agents.json +108 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/setup.json +55 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/show.json +46 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/snapshot.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/stash.json +68 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/status.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/suggest.json +36 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/summarize.json +44 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/sync.json +55 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/tag.json +73 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/undo.json +60 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/update.json +40 -0
- gitwise_cli-0.24.2/share/schemas/v1/input/worktree.json +50 -0
- gitwise_cli-0.24.2/tests/__init__.py +0 -0
- gitwise_cli-0.24.2/tests/conftest.py +143 -0
- gitwise_cli-0.24.2/tests/test_adapters.py +449 -0
- gitwise_cli-0.24.2/tests/test_audit.py +98 -0
- gitwise_cli-0.24.2/tests/test_branches.py +55 -0
- gitwise_cli-0.24.2/tests/test_clean.py +265 -0
- gitwise_cli-0.24.2/tests/test_commit.py +100 -0
- gitwise_cli-0.24.2/tests/test_conflicts.py +45 -0
- gitwise_cli-0.24.2/tests/test_context.py +28 -0
- gitwise_cli-0.24.2/tests/test_design.py +647 -0
- gitwise_cli-0.24.2/tests/test_diff.py +168 -0
- gitwise_cli-0.24.2/tests/test_doctor.py +51 -0
- gitwise_cli-0.24.2/tests/test_edge_cases.py +93 -0
- gitwise_cli-0.24.2/tests/test_git.py +140 -0
- gitwise_cli-0.24.2/tests/test_git_output_utils.py +26 -0
- gitwise_cli-0.24.2/tests/test_health.py +28 -0
- gitwise_cli-0.24.2/tests/test_i18n.py +91 -0
- gitwise_cli-0.24.2/tests/test_json_envelope_utils.py +36 -0
- gitwise_cli-0.24.2/tests/test_log.py +113 -0
- gitwise_cli-0.24.2/tests/test_main.py +331 -0
- gitwise_cli-0.24.2/tests/test_md_links_script.py +44 -0
- gitwise_cli-0.24.2/tests/test_merge.py +63 -0
- gitwise_cli-0.24.2/tests/test_optimize.py +99 -0
- gitwise_cli-0.24.2/tests/test_output.py +92 -0
- gitwise_cli-0.24.2/tests/test_parsing_utils.py +36 -0
- gitwise_cli-0.24.2/tests/test_pick.py +74 -0
- gitwise_cli-0.24.2/tests/test_pr.py +326 -0
- gitwise_cli-0.24.2/tests/test_roadmap_baseline_script.py +57 -0
- gitwise_cli-0.24.2/tests/test_sa_plan.py +406 -0
- gitwise_cli-0.24.2/tests/test_sa_unit.py +463 -0
- gitwise_cli-0.24.2/tests/test_schema_catalog.py +45 -0
- gitwise_cli-0.24.2/tests/test_setup.py +203 -0
- gitwise_cli-0.24.2/tests/test_setup_agents.py +953 -0
- gitwise_cli-0.24.2/tests/test_show.py +37 -0
- gitwise_cli-0.24.2/tests/test_snapshot.py +28 -0
- gitwise_cli-0.24.2/tests/test_stash.py +81 -0
- gitwise_cli-0.24.2/tests/test_status.py +52 -0
- gitwise_cli-0.24.2/tests/test_suggest.py +67 -0
- gitwise_cli-0.24.2/tests/test_summarize.py +108 -0
- gitwise_cli-0.24.2/tests/test_sync.py +79 -0
- gitwise_cli-0.24.2/tests/test_sync_changelog_es_script.py +51 -0
- gitwise_cli-0.24.2/tests/test_tag.py +105 -0
- gitwise_cli-0.24.2/tests/test_undo.py +58 -0
- gitwise_cli-0.24.2/tests/test_worktree.py +91 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*.pyo
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
.mypy_cache/
|
|
6
|
+
.ruff_cache/
|
|
7
|
+
dist/
|
|
8
|
+
*.egg-info/
|
|
9
|
+
tests/fixtures/repos/
|
|
10
|
+
.env
|
|
11
|
+
.envrc
|
|
12
|
+
.venv/
|
|
13
|
+
.coverage
|
|
14
|
+
.coverage.*
|
|
15
|
+
coverage.xml
|
|
16
|
+
htmlcov/
|
|
17
|
+
|
|
18
|
+
*.bak
|
|
19
|
+
CLAUDE.md.bak*
|
|
20
|
+
AGENTS.md.bak*
|
|
21
|
+
|
|
22
|
+
.claude/
|
|
23
|
+
.agentskills/
|
|
24
|
+
.opencode/
|
|
25
|
+
review/
|
|
26
|
+
|
|
27
|
+
# >>> gitwise managed (do not edit between markers) >>>
|
|
28
|
+
# Claude Code local/personal files (do not commit)
|
|
29
|
+
.claude/settings.local.json
|
|
30
|
+
.claude/.credentials.json
|
|
31
|
+
# Snapshot regenerated each gitwise run (timestamps change)
|
|
32
|
+
.claude/git-snapshot.md
|
|
33
|
+
# Backups from gitwise setup-agents
|
|
34
|
+
*.bak
|
|
35
|
+
CLAUDE.md.bak*
|
|
36
|
+
AGENTS.md.bak*
|
|
37
|
+
# <<< gitwise managed <<<
|
|
38
|
+
.aider.conf.yml
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
4
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
5
|
+
|
|
6
|
+
## v0.24.2 (2026-06-16)
|
|
7
|
+
|
|
8
|
+
### Fix
|
|
9
|
+
|
|
10
|
+
- **packaging**: rename distribution to gitwise-cli to avoid PyPI name conflict
|
|
11
|
+
|
|
12
|
+
## v0.24.1 (2026-06-16)
|
|
13
|
+
|
|
14
|
+
### Fix
|
|
15
|
+
|
|
16
|
+
- **ci**: replace invalid action SHAs in publish-pypi workflow
|
|
17
|
+
|
|
18
|
+
## v0.24.0 (2026-06-16)
|
|
19
|
+
|
|
20
|
+
### Feat
|
|
21
|
+
|
|
22
|
+
- enable pip and brew distribution with packaging, security, and refactor fixes (#54)
|
|
23
|
+
|
|
24
|
+
## v0.23.0 (2026-06-16)
|
|
25
|
+
|
|
26
|
+
### Notes
|
|
27
|
+
|
|
28
|
+
- Semver realignment for the breaking changes shipped in `v0.22.1`. The
|
|
29
|
+
underlying changes are documented in the `v0.22.1` entry below; this
|
|
30
|
+
release contains no additional functional changes. The minor bump was
|
|
31
|
+
triggered when a subsequent `docs:` commit included the literal string
|
|
32
|
+
`BREAKING CHANGE:` in its body (explaining the convention rule itself),
|
|
33
|
+
which commitizen detected as a breaking-change marker. The CHANGELOG
|
|
34
|
+
section for this version is intentionally empty of items because
|
|
35
|
+
commitizen filters `docs:` commits out of the rendered output.
|
|
36
|
+
|
|
37
|
+
## v0.22.1 (2026-06-16)
|
|
38
|
+
|
|
39
|
+
> **Note on versioning:** This release contains breaking changes to the JSON
|
|
40
|
+
> output of `optimize`, `clean`, and `setup`. Under strict semver with
|
|
41
|
+
> `major_version_zero = true` it should have been `v0.23.0`. The patch
|
|
42
|
+
> increment was the result of a `fix:` commit lacking the `BREAKING CHANGE:`
|
|
43
|
+
> footer that commitizen needs to detect breaking changes. The next minor
|
|
44
|
+
> bump will resync; meanwhile this entry documents the breaks explicitly so
|
|
45
|
+
> consumers can react.
|
|
46
|
+
|
|
47
|
+
### Fix
|
|
48
|
+
|
|
49
|
+
- **optimize/clean/setup**: `--json` now executes the same write paths as the
|
|
50
|
+
TTY mode (closes #45). Previously the JSON branch printed a plan and
|
|
51
|
+
returned `ok:true` without running any side effects, silently breaking
|
|
52
|
+
agents/CI that drove gitwise in JSON mode. (#50)
|
|
53
|
+
- **sync**: `sync --pull` on diverged branches now returns an actionable hint
|
|
54
|
+
in EN/ES plus a structured `suggested_commands` array in the JSON envelope
|
|
55
|
+
(closes #43). (#50)
|
|
56
|
+
|
|
57
|
+
### Breaking Changes
|
|
58
|
+
|
|
59
|
+
- **optimize/clean/setup**: `--json` on a write command now requires `--yes`
|
|
60
|
+
to execute side effects. Without `--yes` the command returns `rc=2` and
|
|
61
|
+
emits an `error_envelope` with `code:"yes_required"`. Use `--dry-run` for
|
|
62
|
+
plan-only inspection. (#50)
|
|
63
|
+
- **clean (JSON only)**: domain-specific error array renamed from `errors`
|
|
64
|
+
to `delete_errors` to avoid collision with the envelope-level `errors[]`
|
|
65
|
+
field used by `error_envelope`. (#50)
|
|
66
|
+
- **optimize/clean/setup (JSON only)**: all three commands now emit through
|
|
67
|
+
the unified `ok_envelope`/`error_envelope` helpers. Shape:
|
|
68
|
+
`{v, ok, applied, dry_run, ...payload}` on success and
|
|
69
|
+
`{v, ok:false, error, errors:[{code, message, hint}], ...payload}` on
|
|
70
|
+
failure. (#50)
|
|
71
|
+
|
|
72
|
+
## v0.22.0 (2026-05-23)
|
|
73
|
+
|
|
74
|
+
### Feat
|
|
75
|
+
|
|
76
|
+
- **schema**: add versioned schema catalog and CI validation (#41)
|
|
77
|
+
|
|
78
|
+
## v0.21.0 (2026-05-23)
|
|
79
|
+
|
|
80
|
+
### Feat
|
|
81
|
+
|
|
82
|
+
- **cli**: add P2 commands/schema introspection with resilient dependency fallbacks (#40)
|
|
83
|
+
|
|
84
|
+
## v0.20.0 (2026-05-23)
|
|
85
|
+
|
|
86
|
+
### Feat
|
|
87
|
+
|
|
88
|
+
- implement P1 completions, rich help, and env docs (#38)
|
|
89
|
+
|
|
90
|
+
## v0.19.0 (2026-05-23)
|
|
91
|
+
|
|
92
|
+
### Feat
|
|
93
|
+
|
|
94
|
+
- close P0 agent safety and JSON error consistency (#37)
|
|
95
|
+
|
|
96
|
+
## v0.18.0 (2026-05-23)
|
|
97
|
+
|
|
98
|
+
### Feat
|
|
99
|
+
|
|
100
|
+
- **release**: auto-sync CHANGELOG.es on bump
|
|
101
|
+
|
|
102
|
+
### Fix
|
|
103
|
+
|
|
104
|
+
- **ci**: eliminate workflow_call auth failure and cache collisions on main (#36)
|
|
105
|
+
- **setup-agents**: restore rollback correctness and isolate claude core
|
|
106
|
+
|
|
107
|
+
### Refactor
|
|
108
|
+
|
|
109
|
+
- **setup-agents**: canonical local default and transactional rollback
|
|
110
|
+
|
|
111
|
+
## v0.17.0 (2026-05-23)
|
|
112
|
+
|
|
113
|
+
### Feat
|
|
114
|
+
|
|
115
|
+
- **setup-agents**: add providers flag and legacy migration flow
|
|
116
|
+
|
|
117
|
+
### Fix
|
|
118
|
+
|
|
119
|
+
- **setup-agents**: address PR review feedback and strict JSON behavior
|
|
120
|
+
|
|
121
|
+
## v0.16.0 (2026-05-23)
|
|
122
|
+
|
|
123
|
+
### Feat
|
|
124
|
+
|
|
125
|
+
- **setup-agents**: canonical-first layout and json v3
|
|
126
|
+
|
|
127
|
+
### Fix
|
|
128
|
+
|
|
129
|
+
- **setup-agents**: address PR review feedback
|
|
130
|
+
|
|
131
|
+
## v0.15.3 (2026-05-23)
|
|
132
|
+
|
|
133
|
+
### Refactor
|
|
134
|
+
|
|
135
|
+
- **setup-agents**: providers foundation and claude wrapper extraction (#32)
|
|
136
|
+
|
|
137
|
+
## v0.15.2 (2026-05-22)
|
|
138
|
+
|
|
139
|
+
### Fix
|
|
140
|
+
|
|
141
|
+
- version version badget
|
|
142
|
+
|
|
143
|
+
## v0.15.1 (2026-05-22)
|
|
144
|
+
|
|
145
|
+
### Fix
|
|
146
|
+
|
|
147
|
+
- **release**: align roadmap and lockfile with v0.15.0 (#30)
|
|
148
|
+
|
|
149
|
+
## v0.15.0 (2026-05-22)
|
|
150
|
+
|
|
151
|
+
### Feat
|
|
152
|
+
|
|
153
|
+
- **setup**: add safe hooks strategy with native Git support (#29)
|
|
154
|
+
|
|
155
|
+
## v0.14.2 (2026-05-22)
|
|
156
|
+
|
|
157
|
+
### Refactor
|
|
158
|
+
|
|
159
|
+
- unify command dispatch, shared utils, and JSON envelopes (#27)
|
|
160
|
+
|
|
161
|
+
## v0.14.1 (2026-05-22)
|
|
162
|
+
|
|
163
|
+
### Fix
|
|
164
|
+
|
|
165
|
+
- **audit**: resolve post-merge review follow-ups and docs mismatches (#26)
|
|
166
|
+
|
|
167
|
+
## v0.14.0 (2026-05-22)
|
|
168
|
+
|
|
169
|
+
### Feat
|
|
170
|
+
|
|
171
|
+
- **pr**: improve view comments and checks readability (#25)
|
|
172
|
+
|
|
173
|
+
## v0.13.0 (2026-05-21)
|
|
174
|
+
|
|
175
|
+
### Feat
|
|
176
|
+
|
|
177
|
+
- unify human output styling and global JSON modes (#24)
|
|
178
|
+
|
|
179
|
+
## v0.12.2 (2026-05-20)
|
|
180
|
+
|
|
181
|
+
### Fix
|
|
182
|
+
|
|
183
|
+
- **ci**: unblock auto-release — workflow_call, dev deps, scoped permissions
|
|
184
|
+
- full audit — 35 items across security, quality, performance and CI
|
|
185
|
+
|
|
186
|
+
## v0.12.1 (2026-05-19)
|
|
187
|
+
|
|
188
|
+
### Refactor
|
|
189
|
+
|
|
190
|
+
- split AGENTS.md into scoped rules for opencode and Claude Code (#21)
|
|
191
|
+
|
|
192
|
+
## v0.12.0 (2026-05-19)
|
|
193
|
+
|
|
194
|
+
### Feat
|
|
195
|
+
|
|
196
|
+
- demo, subprocess coverage, agent adapters (#20)
|
|
197
|
+
|
|
198
|
+
## v0.11.0 (2026-05-19)
|
|
199
|
+
|
|
200
|
+
### Feat
|
|
201
|
+
|
|
202
|
+
- Rich migration — full color system with WCAG AA themes (#19)
|
|
203
|
+
|
|
204
|
+
## v0.10.3 (2026-05-18)
|
|
205
|
+
|
|
206
|
+
### Refactor
|
|
207
|
+
|
|
208
|
+
- 6-phase architecture cleanup + guidelines expansion (#17)
|
|
209
|
+
|
|
210
|
+
## v0.10.2 (2026-05-17)
|
|
211
|
+
|
|
212
|
+
### Refactor
|
|
213
|
+
|
|
214
|
+
- Phase 10 — require_root() DRY + edge case tests (#16)
|
|
215
|
+
|
|
216
|
+
## v0.10.1 (2026-05-17)
|
|
217
|
+
|
|
218
|
+
### Fix
|
|
219
|
+
|
|
220
|
+
- Phase 9 — Cross-verification fixes from multi-review audit (#15)
|
|
221
|
+
|
|
222
|
+
## v0.10.0 (2026-05-17)
|
|
223
|
+
|
|
224
|
+
### Feat
|
|
225
|
+
|
|
226
|
+
- Phase 8 — command enhancements (#14)
|
|
227
|
+
|
|
228
|
+
## v0.9.0 (2026-05-17)
|
|
229
|
+
|
|
230
|
+
### Feat
|
|
231
|
+
|
|
232
|
+
- Phase 7 — final aliases, ROADMAP & CHANGELOG (#13)
|
|
233
|
+
|
|
234
|
+
## v0.8.0 (2026-05-16)
|
|
235
|
+
|
|
236
|
+
### Feat
|
|
237
|
+
|
|
238
|
+
- Phase 7 — final aliases, ROADMAP & CHANGELOG (#13)
|
|
239
|
+
- Phase 6 — naming cleanup & UX enhancements (#12)
|
|
240
|
+
|
|
241
|
+
## v0.7.0 (2026-05-16)
|
|
242
|
+
|
|
243
|
+
### Feat
|
|
244
|
+
|
|
245
|
+
- Phase 5 — polish & UX improvements (#11)
|
|
246
|
+
|
|
247
|
+
## v0.6.0 (2026-05-16)
|
|
248
|
+
|
|
249
|
+
### Feat
|
|
250
|
+
|
|
251
|
+
- Phase 4 — advanced workflows (tag, merge, conflicts, suggest, pick)
|
|
252
|
+
|
|
253
|
+
## v0.5.0 (2026-05-16)
|
|
254
|
+
|
|
255
|
+
### Feat
|
|
256
|
+
|
|
257
|
+
- Phase 3 — AI enhancements (context, health, stash, audit)
|
|
258
|
+
|
|
259
|
+
## v0.4.0 (2026-05-16)
|
|
260
|
+
|
|
261
|
+
### Feat
|
|
262
|
+
|
|
263
|
+
- Phase 2 — sync + GitHub integration (sync, pr, undo, diff --full)
|
|
264
|
+
|
|
265
|
+
## v0.3.0 (2026-05-16)
|
|
266
|
+
|
|
267
|
+
### Feat
|
|
268
|
+
|
|
269
|
+
- Phase 1 — core daily operations (log, show, commit, branches)
|
|
270
|
+
|
|
271
|
+
## v0.2.4 (2026-05-16)
|
|
272
|
+
|
|
273
|
+
### Fix
|
|
274
|
+
|
|
275
|
+
- resolve CI auto-release cancellation and deprecation warnings (#6)
|
|
276
|
+
|
|
277
|
+
## v0.2.3 (2026-05-16)
|
|
278
|
+
|
|
279
|
+
### Fix
|
|
280
|
+
|
|
281
|
+
- resolve all AGENTS.md guideline violations (i18n, code style, boundaries) (#5)
|
|
282
|
+
|
|
283
|
+
## v0.2.2 (2026-05-15)
|
|
284
|
+
|
|
285
|
+
### Fix
|
|
286
|
+
|
|
287
|
+
- remove persist-credentials: false from release checkout
|
|
288
|
+
- harden CI/CD pipeline — security, reliability, efficiency
|
|
289
|
+
|
|
290
|
+
## v0.2.1 (2026-05-15)
|
|
291
|
+
|
|
292
|
+
### Fix
|
|
293
|
+
|
|
294
|
+
- match commitizen changelog format in release notes extraction
|
|
295
|
+
|
|
296
|
+
## v0.2.0 (2026-05-15)
|
|
297
|
+
|
|
298
|
+
### Feat
|
|
299
|
+
|
|
300
|
+
- add automated release via commitizen bump on merge to main
|
|
301
|
+
- apply i18n to all modules — replace 200+ hardcoded Spanish strings
|
|
302
|
+
- add adaptive terminal colors with dark/light theme detection
|
|
303
|
+
- add i18n system with es/en string catalog
|
|
304
|
+
- add lefthook hooks, commitizen versioning, fix CI
|
|
305
|
+
|
|
306
|
+
### Fix
|
|
307
|
+
|
|
308
|
+
- auto-release bump bug, harden CI workflows, eliminate double CI
|
|
309
|
+
- address PR review — template format bug, redundant logic, missed string
|
|
310
|
+
- eliminate cache race condition in CI
|
|
311
|
+
- resolve CI failures, add dependabot, harden release workflow
|
|
312
|
+
|
|
313
|
+
## v0.1.0 (2026-05-14)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Deiner
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gitwise-cli
|
|
3
|
+
Version: 0.24.2
|
|
4
|
+
Summary: Python CLI for optimizing git workflows and Claude Code integration
|
|
5
|
+
Author-email: Deiner <drzioner@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: automation,claude-code,cli,developer-tools,git
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: MacOS
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Requires-Dist: rich-argparse<2,>=1.8.0
|
|
26
|
+
Requires-Dist: rich<15,>=13.0
|
|
27
|
+
Requires-Dist: shtab<2,>=1.8.0
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# gitwise
|
|
31
|
+
|
|
32
|
+
[English](README.md) | [Español](README.es.md)
|
|
33
|
+
|
|
34
|
+
Python CLI for optimized Git workflows and coding agents integration.
|
|
35
|
+
|
|
36
|
+
[](https://github.com/drzioner/gitwise/actions/workflows/ci.yml)
|
|
37
|
+
[](https://codecov.io/gh/drzioner/gitwise)
|
|
38
|
+
[](https://github.com/drzioner/gitwise/releases)
|
|
39
|
+
[](https://opensource.org/licenses/MIT)
|
|
40
|
+
[](https://www.python.org/downloads/)
|
|
41
|
+
[](docs/README.md)
|
|
42
|
+
|
|
43
|
+
gitwise addresses three daily pain points:
|
|
44
|
+
|
|
45
|
+
1. AI context bloat from raw `git diff`
|
|
46
|
+
2. Slow repositories without modern Git maintenance settings
|
|
47
|
+
3. Unsafe commit flows that bypass GPG signing rules
|
|
48
|
+
|
|
49
|
+
## Requirements
|
|
50
|
+
|
|
51
|
+
- Python >= 3.10
|
|
52
|
+
- git >= 2.29
|
|
53
|
+
- macOS or Linux
|
|
54
|
+
|
|
55
|
+
## Install
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git clone https://github.com/drzioner/gitwise.git ~/.local/share/gitwise
|
|
59
|
+
bash ~/.local/share/gitwise/install.sh
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Update an existing installation:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
gitwise update
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Quick Start
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
gitwise doctor
|
|
72
|
+
gitwise setup --dry-run
|
|
73
|
+
gitwise setup-agents --local --dry-run
|
|
74
|
+
gitwise summarize
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Most Used Commands
|
|
78
|
+
|
|
79
|
+
| Command | Purpose |
|
|
80
|
+
|---|---|
|
|
81
|
+
| `gitwise doctor` | Check Python, git, platform, optional tools |
|
|
82
|
+
| `gitwise setup` | Apply modern Git defaults safely |
|
|
83
|
+
| `gitwise setup-agents` | Install canonical agents layout + optional provider config |
|
|
84
|
+
| `gitwise audit` | Detect stale branches, graph/cache gaps, large blobs |
|
|
85
|
+
| `gitwise summarize` | Compact context for humans and AI |
|
|
86
|
+
| `gitwise diff` | Focused changed-file view (`--stat`, `--staged`, `--patch`) |
|
|
87
|
+
| `gitwise worktree` | Create and clean worktree-based branch setups |
|
|
88
|
+
| `gitwise status` | Enhanced status with staged/unstaged and ahead/behind |
|
|
89
|
+
| `gitwise commands --json` | List subcommands with aliases and metadata |
|
|
90
|
+
| `gitwise schema <command> --json` | Return versioned JSON Schema for command inputs |
|
|
91
|
+
| `gitwise completions <shell>` | Generate shell completion scripts (bash/zsh/fish) |
|
|
92
|
+
| `gitwise pr` | List/check/view PRs via GitHub CLI |
|
|
93
|
+
|
|
94
|
+
For all commands, examples, aliases, and JSON usage, see:
|
|
95
|
+
|
|
96
|
+
- [Command reference (English)](docs/reference/commands.md)
|
|
97
|
+
- [Referencia de comandos (Español)](docs/es/reference/commands.md)
|
|
98
|
+
|
|
99
|
+
## Documentation
|
|
100
|
+
|
|
101
|
+
- [Documentation index (English)](docs/README.md)
|
|
102
|
+
- [Indice de documentacion (Español)](docs/es/README.md)
|
|
103
|
+
- [Contributing guide](CONTRIBUTING.md)
|
|
104
|
+
- [Guia de contribucion](CONTRIBUTING.es.md)
|
|
105
|
+
- [Security policy](SECURITY.md)
|
|
106
|
+
- [Politica de seguridad](SECURITY.es.md)
|
|
107
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
108
|
+
- [Código de conducta](CODE_OF_CONDUCT.es.md)
|
|
109
|
+
- [Git conventions](CONVENTIONS.md)
|
|
110
|
+
- [Convenciones Git](CONVENTIONS.es.md)
|
|
111
|
+
|
|
112
|
+
## GPG and Safety Model
|
|
113
|
+
|
|
114
|
+
`setup` and `setup-agents` never modify `commit.gpgsign` or `user.signingkey`.
|
|
115
|
+
|
|
116
|
+
- Git layer: `setup` manages hooks safely (`--hooks-mode preserve|native|legacy|skip`) to validate signing key availability and conventional commits.
|
|
117
|
+
- Agent layer: deny-rules block `--no-gpg-sign`, `--no-verify`, and `-c commit.gpgsign=false`.
|
|
118
|
+
|
|
119
|
+
## Environment Variables
|
|
120
|
+
|
|
121
|
+
| Variable | Description |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `GITWISE_DEBUG=1` | Print each `git` subprocess command to stderr |
|
|
124
|
+
| `GITWISE_LOG_JSON=1` | Emit structured stderr logs as JSON lines |
|
|
125
|
+
| `GITWISE_JSON_PRETTY=1` | Pretty-print JSON output by default |
|
|
126
|
+
| `GITWISE_LANG=es` / `GITWISE_LANG=en` | Force output locale |
|
|
127
|
+
| `GITWISE_THEME=dark` / `GITWISE_THEME=light` / `GITWISE_THEME=auto` | Override color theme selection |
|
|
128
|
+
| `GITWISE_NO_COLOR=1` | Disable ANSI color output |
|
|
129
|
+
| `GITWISE_OUTPUT=agent` | Force machine-oriented output mode |
|
|
130
|
+
| `GITWISE_AGENT=1` | Alias to enable agent output mode |
|
|
131
|
+
| `GITWISE_GIT_TIMEOUT=<seconds>` | Override git subprocess timeout |
|
|
132
|
+
| `GITWISE_WIDTH=<columns>` | Override output width |
|
|
133
|
+
| `GITWISE_BIN_DIR` | Install location (default: `~/.local/bin`) |
|
|
134
|
+
|
|
135
|
+
## Shell Completions
|
|
136
|
+
|
|
137
|
+
Generate completions script per shell:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
gitwise completions bash > ~/.local/share/bash-completion/completions/gitwise
|
|
141
|
+
gitwise completions zsh > ~/.zsh/completions/_gitwise
|
|
142
|
+
gitwise completions fish > ~/.config/fish/completions/gitwise.fish
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Demo
|
|
146
|
+
|
|
147
|
+
[](https://asciinema.org/a/6tm4TnYMygEQT7ef)
|
|
148
|
+
|
|
149
|
+
## License
|
|
150
|
+
|
|
151
|
+
[MIT](LICENSE) - Deiner
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# gitwise
|
|
2
|
+
|
|
3
|
+
[English](README.md) | [Español](README.es.md)
|
|
4
|
+
|
|
5
|
+
Python CLI for optimized Git workflows and coding agents integration.
|
|
6
|
+
|
|
7
|
+
[](https://github.com/drzioner/gitwise/actions/workflows/ci.yml)
|
|
8
|
+
[](https://codecov.io/gh/drzioner/gitwise)
|
|
9
|
+
[](https://github.com/drzioner/gitwise/releases)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://www.python.org/downloads/)
|
|
12
|
+
[](docs/README.md)
|
|
13
|
+
|
|
14
|
+
gitwise addresses three daily pain points:
|
|
15
|
+
|
|
16
|
+
1. AI context bloat from raw `git diff`
|
|
17
|
+
2. Slow repositories without modern Git maintenance settings
|
|
18
|
+
3. Unsafe commit flows that bypass GPG signing rules
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- Python >= 3.10
|
|
23
|
+
- git >= 2.29
|
|
24
|
+
- macOS or Linux
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git clone https://github.com/drzioner/gitwise.git ~/.local/share/gitwise
|
|
30
|
+
bash ~/.local/share/gitwise/install.sh
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Update an existing installation:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
gitwise update
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Quick Start
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
gitwise doctor
|
|
43
|
+
gitwise setup --dry-run
|
|
44
|
+
gitwise setup-agents --local --dry-run
|
|
45
|
+
gitwise summarize
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Most Used Commands
|
|
49
|
+
|
|
50
|
+
| Command | Purpose |
|
|
51
|
+
|---|---|
|
|
52
|
+
| `gitwise doctor` | Check Python, git, platform, optional tools |
|
|
53
|
+
| `gitwise setup` | Apply modern Git defaults safely |
|
|
54
|
+
| `gitwise setup-agents` | Install canonical agents layout + optional provider config |
|
|
55
|
+
| `gitwise audit` | Detect stale branches, graph/cache gaps, large blobs |
|
|
56
|
+
| `gitwise summarize` | Compact context for humans and AI |
|
|
57
|
+
| `gitwise diff` | Focused changed-file view (`--stat`, `--staged`, `--patch`) |
|
|
58
|
+
| `gitwise worktree` | Create and clean worktree-based branch setups |
|
|
59
|
+
| `gitwise status` | Enhanced status with staged/unstaged and ahead/behind |
|
|
60
|
+
| `gitwise commands --json` | List subcommands with aliases and metadata |
|
|
61
|
+
| `gitwise schema <command> --json` | Return versioned JSON Schema for command inputs |
|
|
62
|
+
| `gitwise completions <shell>` | Generate shell completion scripts (bash/zsh/fish) |
|
|
63
|
+
| `gitwise pr` | List/check/view PRs via GitHub CLI |
|
|
64
|
+
|
|
65
|
+
For all commands, examples, aliases, and JSON usage, see:
|
|
66
|
+
|
|
67
|
+
- [Command reference (English)](docs/reference/commands.md)
|
|
68
|
+
- [Referencia de comandos (Español)](docs/es/reference/commands.md)
|
|
69
|
+
|
|
70
|
+
## Documentation
|
|
71
|
+
|
|
72
|
+
- [Documentation index (English)](docs/README.md)
|
|
73
|
+
- [Indice de documentacion (Español)](docs/es/README.md)
|
|
74
|
+
- [Contributing guide](CONTRIBUTING.md)
|
|
75
|
+
- [Guia de contribucion](CONTRIBUTING.es.md)
|
|
76
|
+
- [Security policy](SECURITY.md)
|
|
77
|
+
- [Politica de seguridad](SECURITY.es.md)
|
|
78
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
79
|
+
- [Código de conducta](CODE_OF_CONDUCT.es.md)
|
|
80
|
+
- [Git conventions](CONVENTIONS.md)
|
|
81
|
+
- [Convenciones Git](CONVENTIONS.es.md)
|
|
82
|
+
|
|
83
|
+
## GPG and Safety Model
|
|
84
|
+
|
|
85
|
+
`setup` and `setup-agents` never modify `commit.gpgsign` or `user.signingkey`.
|
|
86
|
+
|
|
87
|
+
- Git layer: `setup` manages hooks safely (`--hooks-mode preserve|native|legacy|skip`) to validate signing key availability and conventional commits.
|
|
88
|
+
- Agent layer: deny-rules block `--no-gpg-sign`, `--no-verify`, and `-c commit.gpgsign=false`.
|
|
89
|
+
|
|
90
|
+
## Environment Variables
|
|
91
|
+
|
|
92
|
+
| Variable | Description |
|
|
93
|
+
|---|---|
|
|
94
|
+
| `GITWISE_DEBUG=1` | Print each `git` subprocess command to stderr |
|
|
95
|
+
| `GITWISE_LOG_JSON=1` | Emit structured stderr logs as JSON lines |
|
|
96
|
+
| `GITWISE_JSON_PRETTY=1` | Pretty-print JSON output by default |
|
|
97
|
+
| `GITWISE_LANG=es` / `GITWISE_LANG=en` | Force output locale |
|
|
98
|
+
| `GITWISE_THEME=dark` / `GITWISE_THEME=light` / `GITWISE_THEME=auto` | Override color theme selection |
|
|
99
|
+
| `GITWISE_NO_COLOR=1` | Disable ANSI color output |
|
|
100
|
+
| `GITWISE_OUTPUT=agent` | Force machine-oriented output mode |
|
|
101
|
+
| `GITWISE_AGENT=1` | Alias to enable agent output mode |
|
|
102
|
+
| `GITWISE_GIT_TIMEOUT=<seconds>` | Override git subprocess timeout |
|
|
103
|
+
| `GITWISE_WIDTH=<columns>` | Override output width |
|
|
104
|
+
| `GITWISE_BIN_DIR` | Install location (default: `~/.local/bin`) |
|
|
105
|
+
|
|
106
|
+
## Shell Completions
|
|
107
|
+
|
|
108
|
+
Generate completions script per shell:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
gitwise completions bash > ~/.local/share/bash-completion/completions/gitwise
|
|
112
|
+
gitwise completions zsh > ~/.zsh/completions/_gitwise
|
|
113
|
+
gitwise completions fish > ~/.config/fish/completions/gitwise.fish
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Demo
|
|
117
|
+
|
|
118
|
+
[](https://asciinema.org/a/6tm4TnYMygEQT7ef)
|
|
119
|
+
|
|
120
|
+
## License
|
|
121
|
+
|
|
122
|
+
[MIT](LICENSE) - Deiner
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# gitwise entry-point — resolves symlinks, uses venv Python when available
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
_self="${BASH_SOURCE[0]}"
|
|
6
|
+
_max_depth=32
|
|
7
|
+
while [ -L "$_self" ] && [ $((_max_depth--)) -gt 0 ]; do
|
|
8
|
+
_dir="$(cd "$(dirname "$_self")" && pwd -P)"
|
|
9
|
+
_self="$(readlink "$_self")"
|
|
10
|
+
[[ "$_self" != /* ]] && _self="$_dir/$_self"
|
|
11
|
+
done
|
|
12
|
+
SCRIPT_DIR="$(cd "$(dirname "$_self")" && pwd -P)"
|
|
13
|
+
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
14
|
+
|
|
15
|
+
VENV_PYTHON="$PROJECT_ROOT/.venv/bin/python"
|
|
16
|
+
if [[ -x "$VENV_PYTHON" ]]; then
|
|
17
|
+
PYTHONPATH="$PROJECT_ROOT${PYTHONPATH:+:$PYTHONPATH}" exec "$VENV_PYTHON" -m gitwise "$@"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
if ! command -v python3 &>/dev/null; then
|
|
21
|
+
echo "error: python3 not found. Run 'uv sync' or install Python 3.10+" >&2
|
|
22
|
+
exit 127
|
|
23
|
+
fi
|
|
24
|
+
PYTHONPATH="$PROJECT_ROOT${PYTHONPATH:+:$PYTHONPATH}" exec python3 -m gitwise "$@"
|