gitpro 0.3.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.
- gitpro-0.3.1/.gitignore +14 -0
- gitpro-0.3.1/LICENSE +21 -0
- gitpro-0.3.1/PKG-INFO +103 -0
- gitpro-0.3.1/README.md +79 -0
- gitpro-0.3.1/pyproject.toml +46 -0
- gitpro-0.3.1/src/gitpro/__init__.py +4 -0
- gitpro-0.3.1/src/gitpro/__main__.py +5 -0
- gitpro-0.3.1/src/gitpro/agents.py +1928 -0
- gitpro-0.3.1/src/gitpro/approval_policy.py +151 -0
- gitpro-0.3.1/src/gitpro/args.py +82 -0
- gitpro-0.3.1/src/gitpro/audit.py +800 -0
- gitpro-0.3.1/src/gitpro/change_contract.py +117 -0
- gitpro-0.3.1/src/gitpro/changes.py +853 -0
- gitpro-0.3.1/src/gitpro/cli.py +499 -0
- gitpro-0.3.1/src/gitpro/clone.py +505 -0
- gitpro-0.3.1/src/gitpro/completion.py +407 -0
- gitpro-0.3.1/src/gitpro/config.py +517 -0
- gitpro-0.3.1/src/gitpro/devcontainer.py +442 -0
- gitpro-0.3.1/src/gitpro/discover.py +1579 -0
- gitpro-0.3.1/src/gitpro/doctor.py +572 -0
- gitpro-0.3.1/src/gitpro/envcmd.py +370 -0
- gitpro-0.3.1/src/gitpro/example.toml +102 -0
- gitpro-0.3.1/src/gitpro/files.py +139 -0
- gitpro-0.3.1/src/gitpro/forge.py +1244 -0
- gitpro-0.3.1/src/gitpro/guard.py +1121 -0
- gitpro-0.3.1/src/gitpro/health.py +1241 -0
- gitpro-0.3.1/src/gitpro/hot.py +38 -0
- gitpro-0.3.1/src/gitpro/jsonfile.py +195 -0
- gitpro-0.3.1/src/gitpro/jsonout.py +26 -0
- gitpro-0.3.1/src/gitpro/keys.py +59 -0
- gitpro-0.3.1/src/gitpro/lint.py +50 -0
- gitpro-0.3.1/src/gitpro/lost.py +874 -0
- gitpro-0.3.1/src/gitpro/mcp.py +1055 -0
- gitpro-0.3.1/src/gitpro/operation_contract.py +178 -0
- gitpro-0.3.1/src/gitpro/operation_io.py +256 -0
- gitpro-0.3.1/src/gitpro/operation_reconcile.py +191 -0
- gitpro-0.3.1/src/gitpro/operations.py +841 -0
- gitpro-0.3.1/src/gitpro/pin.py +89 -0
- gitpro-0.3.1/src/gitpro/plan.py +199 -0
- gitpro-0.3.1/src/gitpro/policy.py +1808 -0
- gitpro-0.3.1/src/gitpro/prompt.py +304 -0
- gitpro-0.3.1/src/gitpro/render.py +474 -0
- gitpro-0.3.1/src/gitpro/resolve.py +898 -0
- gitpro-0.3.1/src/gitpro/scan.py +358 -0
- gitpro-0.3.1/src/gitpro/scanroots.py +146 -0
- gitpro-0.3.1/src/gitpro/setup.py +260 -0
- gitpro-0.3.1/src/gitpro/trailers.py +218 -0
- gitpro-0.3.1/src/gitpro/tui.py +178 -0
- gitpro-0.3.1/src/gitpro/undo.py +63 -0
- gitpro-0.3.1/src/gitpro/view.py +155 -0
gitpro-0.3.1/.gitignore
ADDED
gitpro-0.3.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yantrakar and Sandeep Shelke
|
|
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.
|
gitpro-0.3.1/PKG-INFO
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: gitpro
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Summary: Per-remote git identities (name, email, SSH key, commit signing) from one TOML file
|
|
5
|
+
Project-URL: Homepage, https://github.com/Yantrakar/gitpro
|
|
6
|
+
Project-URL: Documentation, https://github.com/Yantrakar/gitpro/blob/main/docs/guide.md
|
|
7
|
+
Project-URL: Issues, https://github.com/Yantrakar/gitpro/issues
|
|
8
|
+
Author: Yantrakar, Sandeep Shelke
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: git,gitconfig,identity,includeif,signing,ssh
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: MacOS
|
|
15
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
|
+
Requires-Dist: rich>=13
|
|
20
|
+
Requires-Dist: tomli>=1.1; python_version < '3.11'
|
|
21
|
+
Provides-Extra: tui
|
|
22
|
+
Requires-Dist: textual>=0.80; extra == 'tui'
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# gitpro
|
|
26
|
+
|
|
27
|
+
**The right Git identity, SSH key and signature for every repository.**
|
|
28
|
+
|
|
29
|
+
Work on a company repository, commit with your work email. Switch to a personal
|
|
30
|
+
project, use your personal identity. Gitpro chooses by **remote URL**, not by
|
|
31
|
+
where you happened to clone the repository.
|
|
32
|
+
|
|
33
|
+
Useful when you have more than one GitHub/GitLab account, separate work and
|
|
34
|
+
personal keys, or keep finding the wrong email on your commits.
|
|
35
|
+
|
|
36
|
+
## Try it
|
|
37
|
+
|
|
38
|
+
Requires **Linux or macOS**, Git **2.36+**, Python **3.9+** and OpenSSH.
|
|
39
|
+
Install from [PyPI](https://pypi.org/project/gitpro/) with pipx.
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
pipx install gitpro
|
|
43
|
+
gitpro setup --write
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The wizard helps you choose identities, Git hosts and owners, existing SSH keys,
|
|
47
|
+
and optional signing. **No TOML editing is needed for basic setup.** Review the
|
|
48
|
+
configuration before saving; nothing is applied to Git or SSH yet.
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
gitpro plan # see exactly what would change
|
|
52
|
+
gitpro apply -y # explicitly apply the reviewed changes
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Then, inside a repository:
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
gitpro why # see the expected identity and anything overriding it
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Already have a config? Run `gitpro setup --write` to add another identity without losing
|
|
62
|
+
your existing settings or comments. Prefer editing files? The
|
|
63
|
+
[user guide](docs/guide.md#configuration) covers the full TOML format.
|
|
64
|
+
|
|
65
|
+
## What you get
|
|
66
|
+
|
|
67
|
+
- **Work/personal separation:** names, emails, SSH keys and signing per host/owner.
|
|
68
|
+
- **Answers, not guesswork:** `gitpro why` explains mismatches and suggests a fix.
|
|
69
|
+
- **A safety net:** optional hooks can block wrong-identity commits and pushes.
|
|
70
|
+
- **Editor and container support:** see your identity in VS Code and carry it into dev containers.
|
|
71
|
+
|
|
72
|
+
Gitpro generates ordinary Git and SSH configuration; it needs no background
|
|
73
|
+
service. Changes can be previewed, existing hand-written files are backed up,
|
|
74
|
+
and key creation or uploads are never part of the setup wizard.
|
|
75
|
+
|
|
76
|
+
## Using VS Code?
|
|
77
|
+
|
|
78
|
+
Run **gitpro: Set Up Identities** from the Command Palette to open the same wizard
|
|
79
|
+
in a terminal. The extension also shows the current identity and helps find
|
|
80
|
+
repository-level overrides. [Install the extension](vscode/README.md).
|
|
81
|
+
|
|
82
|
+
## Go further when you need to
|
|
83
|
+
|
|
84
|
+
For agents, [the versioned workflow](docs/agent-workflows.md) provides structured
|
|
85
|
+
preflight, identity-scoped execution and durable idempotency for commits, pushes
|
|
86
|
+
and GitHub PRs. Persistent changes use exact proposals, human approval by default,
|
|
87
|
+
optional operator-scoped preauthorization, and recoverable apply. MCP execution is opt-in.
|
|
88
|
+
|
|
89
|
+
| I want to… | Start here |
|
|
90
|
+
|---|---|
|
|
91
|
+
| Understand matching, SSH keys or signing | [Configuration](docs/guide.md#configuration) |
|
|
92
|
+
| Find wrong identities or forgotten work | [Daily use](docs/guide.md#daily-use) · [Finding things](docs/guide.md#finding-things) |
|
|
93
|
+
| Use dev containers | [Container setup](docs/guide.md#dev-containers) |
|
|
94
|
+
| Configure team policy, CI or AI assistants | [Teams and CI](docs/guide.md#teams) · [AI assistants](docs/guide.md#ai-assistants) |
|
|
95
|
+
| Look up a command or undo changes | [Command reference](docs/guide.md#commands) · [Undo](docs/guide.md#undo-everything) |
|
|
96
|
+
| Troubleshoot or contribute | [Troubleshooting](docs/guide.md#troubleshooting) · [Development](docs/guide.md#development) |
|
|
97
|
+
|
|
98
|
+
The detailed TOML, YAML and command examples live in the guide, not on the
|
|
99
|
+
getting-started path.
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
[MIT](LICENSE)
|
gitpro-0.3.1/README.md
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# gitpro
|
|
2
|
+
|
|
3
|
+
**The right Git identity, SSH key and signature for every repository.**
|
|
4
|
+
|
|
5
|
+
Work on a company repository, commit with your work email. Switch to a personal
|
|
6
|
+
project, use your personal identity. Gitpro chooses by **remote URL**, not by
|
|
7
|
+
where you happened to clone the repository.
|
|
8
|
+
|
|
9
|
+
Useful when you have more than one GitHub/GitLab account, separate work and
|
|
10
|
+
personal keys, or keep finding the wrong email on your commits.
|
|
11
|
+
|
|
12
|
+
## Try it
|
|
13
|
+
|
|
14
|
+
Requires **Linux or macOS**, Git **2.36+**, Python **3.9+** and OpenSSH.
|
|
15
|
+
Install from [PyPI](https://pypi.org/project/gitpro/) with pipx.
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
pipx install gitpro
|
|
19
|
+
gitpro setup --write
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The wizard helps you choose identities, Git hosts and owners, existing SSH keys,
|
|
23
|
+
and optional signing. **No TOML editing is needed for basic setup.** Review the
|
|
24
|
+
configuration before saving; nothing is applied to Git or SSH yet.
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
gitpro plan # see exactly what would change
|
|
28
|
+
gitpro apply -y # explicitly apply the reviewed changes
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Then, inside a repository:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
gitpro why # see the expected identity and anything overriding it
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Already have a config? Run `gitpro setup --write` to add another identity without losing
|
|
38
|
+
your existing settings or comments. Prefer editing files? The
|
|
39
|
+
[user guide](docs/guide.md#configuration) covers the full TOML format.
|
|
40
|
+
|
|
41
|
+
## What you get
|
|
42
|
+
|
|
43
|
+
- **Work/personal separation:** names, emails, SSH keys and signing per host/owner.
|
|
44
|
+
- **Answers, not guesswork:** `gitpro why` explains mismatches and suggests a fix.
|
|
45
|
+
- **A safety net:** optional hooks can block wrong-identity commits and pushes.
|
|
46
|
+
- **Editor and container support:** see your identity in VS Code and carry it into dev containers.
|
|
47
|
+
|
|
48
|
+
Gitpro generates ordinary Git and SSH configuration; it needs no background
|
|
49
|
+
service. Changes can be previewed, existing hand-written files are backed up,
|
|
50
|
+
and key creation or uploads are never part of the setup wizard.
|
|
51
|
+
|
|
52
|
+
## Using VS Code?
|
|
53
|
+
|
|
54
|
+
Run **gitpro: Set Up Identities** from the Command Palette to open the same wizard
|
|
55
|
+
in a terminal. The extension also shows the current identity and helps find
|
|
56
|
+
repository-level overrides. [Install the extension](vscode/README.md).
|
|
57
|
+
|
|
58
|
+
## Go further when you need to
|
|
59
|
+
|
|
60
|
+
For agents, [the versioned workflow](docs/agent-workflows.md) provides structured
|
|
61
|
+
preflight, identity-scoped execution and durable idempotency for commits, pushes
|
|
62
|
+
and GitHub PRs. Persistent changes use exact proposals, human approval by default,
|
|
63
|
+
optional operator-scoped preauthorization, and recoverable apply. MCP execution is opt-in.
|
|
64
|
+
|
|
65
|
+
| I want to… | Start here |
|
|
66
|
+
|---|---|
|
|
67
|
+
| Understand matching, SSH keys or signing | [Configuration](docs/guide.md#configuration) |
|
|
68
|
+
| Find wrong identities or forgotten work | [Daily use](docs/guide.md#daily-use) · [Finding things](docs/guide.md#finding-things) |
|
|
69
|
+
| Use dev containers | [Container setup](docs/guide.md#dev-containers) |
|
|
70
|
+
| Configure team policy, CI or AI assistants | [Teams and CI](docs/guide.md#teams) · [AI assistants](docs/guide.md#ai-assistants) |
|
|
71
|
+
| Look up a command or undo changes | [Command reference](docs/guide.md#commands) · [Undo](docs/guide.md#undo-everything) |
|
|
72
|
+
| Troubleshoot or contribute | [Troubleshooting](docs/guide.md#troubleshooting) · [Development](docs/guide.md#development) |
|
|
73
|
+
|
|
74
|
+
The detailed TOML, YAML and command examples live in the guide, not on the
|
|
75
|
+
getting-started path.
|
|
76
|
+
|
|
77
|
+
## License
|
|
78
|
+
|
|
79
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.26"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "gitpro"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Per-remote git identities (name, email, SSH key, commit signing) from one TOML file"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
authors = [{ name = "Yantrakar" }, { name = "Sandeep Shelke" }]
|
|
13
|
+
requires-python = ">=3.9"
|
|
14
|
+
dependencies = ['tomli>=1.1; python_version < "3.11"', "rich>=13"]
|
|
15
|
+
keywords = ["git", "ssh", "identity", "gitconfig", "includeif", "signing"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Operating System :: MacOS",
|
|
20
|
+
"Operating System :: POSIX :: Linux",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Topic :: Software Development :: Version Control :: Git",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
[project.optional-dependencies]
|
|
26
|
+
tui = ["textual>=0.80"] # interactive scan --fix
|
|
27
|
+
|
|
28
|
+
[project.urls]
|
|
29
|
+
Homepage = "https://github.com/Yantrakar/gitpro"
|
|
30
|
+
Documentation = "https://github.com/Yantrakar/gitpro/blob/main/docs/guide.md"
|
|
31
|
+
Issues = "https://github.com/Yantrakar/gitpro/issues"
|
|
32
|
+
|
|
33
|
+
[project.scripts]
|
|
34
|
+
gitpro = "gitpro.hot:main"
|
|
35
|
+
|
|
36
|
+
[tool.hatch.version]
|
|
37
|
+
path = "src/gitpro/__init__.py"
|
|
38
|
+
|
|
39
|
+
[tool.hatch.build.targets.wheel]
|
|
40
|
+
packages = ["src/gitpro"]
|
|
41
|
+
|
|
42
|
+
[tool.hatch.build.targets.sdist]
|
|
43
|
+
include = ["/src/gitpro", "/README.md", "/LICENSE"]
|
|
44
|
+
|
|
45
|
+
[tool.pytest.ini_options]
|
|
46
|
+
testpaths = ["tests"]
|