git-copilot-commit 0.1.5__tar.gz → 0.1.7__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.
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: git-copilot-commit
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary: Automatically generate and commit changes using copilot
5
5
  Author-email: Dheepak Krishnamurthy <1813121+kdheepak@users.noreply.github.com>
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.12
8
- Requires-Dist: pycopilot>=0.1.1
8
+ Requires-Dist: pycopilot>=0.1.6
9
9
  Requires-Dist: rich>=14.0.0
10
10
  Requires-Dist: typer>=0.16.0
11
11
  Requires-Dist: xdg-base-dirs>=6.0.2
@@ -33,8 +33,6 @@ Install using uv (recommended):
33
33
 
34
34
  ```bash
35
35
  uv tool install git-copilot-commit
36
- # or
37
- uvx git-copilot-commit
38
36
  ```
39
37
 
40
38
  Or with pip:
@@ -43,6 +41,12 @@ Or with pip:
43
41
  pipx install git-copilot-commit
44
42
  ```
45
43
 
44
+ Or without installing:
45
+
46
+ ```bash
47
+ uvx git-copilot-commit --help
48
+ ```
49
+
46
50
  ## Prerequisites
47
51
 
48
52
  **GitHub Copilot Access**: You need an active GitHub Copilot subscription
@@ -20,8 +20,6 @@ Install using uv (recommended):
20
20
 
21
21
  ```bash
22
22
  uv tool install git-copilot-commit
23
- # or
24
- uvx git-copilot-commit
25
23
  ```
26
24
 
27
25
  Or with pip:
@@ -30,6 +28,12 @@ Or with pip:
30
28
  pipx install git-copilot-commit
31
29
  ```
32
30
 
31
+ Or without installing:
32
+
33
+ ```bash
34
+ uvx git-copilot-commit --help
35
+ ```
36
+
33
37
  ## Prerequisites
34
38
 
35
39
  **GitHub Copilot Access**: You need an active GitHub Copilot subscription
@@ -0,0 +1,108 @@
1
+ [project]
2
+ name = "git-copilot-commit"
3
+ version = "0.1.7"
4
+ description = "Automatically generate and commit changes using copilot"
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "Dheepak Krishnamurthy", email = "1813121+kdheepak@users.noreply.github.com" },
8
+ ]
9
+ requires-python = ">=3.12"
10
+ dependencies = [
11
+ "pycopilot>=0.1.6",
12
+ "rich>=14.0.0",
13
+ "typer>=0.16.0",
14
+ "xdg-base-dirs>=6.0.2",
15
+ ]
16
+
17
+ [project.scripts]
18
+ git-copilot-commit = "git_copilot_commit.cli:app"
19
+
20
+ [build-system]
21
+ requires = ["hatchling"]
22
+ build-backend = "hatchling.build"
23
+
24
+ [tool.semantic_release]
25
+ assets = []
26
+ build_command_env = []
27
+ commit_message = "{version}\n\nAutomatically generated by python-semantic-release"
28
+ commit_parser = "conventional"
29
+ logging_use_named_masks = false
30
+ major_on_zero = true
31
+ allow_zero_version = false
32
+ repo_dir = "."
33
+ no_git_verify = false
34
+ tag_format = "v{version}"
35
+ version_toml = ["pyproject.toml:project.version"]
36
+
37
+ [tool.semantic_release.branches.main]
38
+ match = "(main|master)"
39
+ prerelease_token = "rc"
40
+ prerelease = false
41
+
42
+ [tool.semantic_release.changelog]
43
+ changelog_file = ""
44
+ exclude_commit_patterns = []
45
+ mode = "update"
46
+ insertion_flag = "<!-- version list -->"
47
+ template_dir = "templates"
48
+
49
+ [tool.semantic_release.changelog.default_templates]
50
+ changelog_file = "CHANGELOG.md"
51
+ output_format = "md"
52
+ mask_initial_release = true
53
+
54
+ [tool.semantic_release.changelog.environment]
55
+ block_start_string = "{%"
56
+ block_end_string = "%}"
57
+ variable_start_string = "{{"
58
+ variable_end_string = "}}"
59
+ comment_start_string = "{#"
60
+ comment_end_string = "#}"
61
+ trim_blocks = false
62
+ lstrip_blocks = false
63
+ newline_sequence = "\n"
64
+ keep_trailing_newline = false
65
+ extensions = []
66
+ autoescape = false
67
+
68
+ [tool.semantic_release.commit_author]
69
+ env = "GIT_COMMIT_AUTHOR"
70
+ default = "semantic-release <semantic-release>"
71
+
72
+ [tool.semantic_release.commit_parser_options]
73
+ minor_tags = ["feat"]
74
+ patch_tags = ["fix", "perf"]
75
+ other_allowed_tags = [
76
+ "build",
77
+ "chore",
78
+ "ci",
79
+ "docs",
80
+ "style",
81
+ "refactor",
82
+ "test",
83
+ ]
84
+ allowed_tags = [
85
+ "feat",
86
+ "fix",
87
+ "perf",
88
+ "build",
89
+ "chore",
90
+ "ci",
91
+ "docs",
92
+ "style",
93
+ "refactor",
94
+ "test",
95
+ ]
96
+ default_bump_level = 0
97
+ parse_squash_commits = true
98
+ ignore_merge_commits = true
99
+
100
+ [tool.semantic_release.remote]
101
+ name = "origin"
102
+ type = "github"
103
+ ignore_token_for_push = false
104
+ insecure = false
105
+
106
+ [tool.semantic_release.publish]
107
+ dist_glob_patterns = ["dist/*"]
108
+ upload_to_vcs_release = true
@@ -0,0 +1,3 @@
1
+ from .version import __version__
2
+
3
+ __all__ = ["__version__"]
@@ -7,18 +7,31 @@ from rich.console import Console
7
7
  from rich.prompt import Confirm
8
8
  from rich.panel import Panel
9
9
  from rich.table import Table
10
+ import rich
10
11
 
11
12
  from pycopilot.copilot import Copilot
12
13
  from pycopilot.auth import Authentication
13
14
  from .git import GitRepository, GitError, NotAGitRepositoryError, GitStatus
14
15
  from .settings import Settings
16
+ from .version import __version__
15
17
 
16
18
  console = Console()
17
19
  app = typer.Typer(help=__doc__, add_completion=False)
18
20
 
19
21
 
22
+ def version_callback(value: bool):
23
+ if value:
24
+ rich.print(f"git-copilot-version [bold green]{__version__}[/]")
25
+ raise typer.Exit()
26
+
27
+
20
28
  @app.callback(invoke_without_command=True)
21
- def main(ctx: typer.Context):
29
+ def main(
30
+ ctx: typer.Context,
31
+ version: bool = typer.Option(
32
+ False, "--version", callback=version_callback, help="Show version and exit"
33
+ ),
34
+ ):
22
35
  """
23
36
  Automatically commit changes in the current git repository.
24
37
  """
@@ -162,11 +175,13 @@ Return the commit message as the output without any additional text, explanation
162
175
  {recent_commits_text}
163
176
 
164
177
  `git status`:
178
+
165
179
  ```
166
180
  {status.get_porcelain_output()}
167
181
  ```
168
182
 
169
183
  `git diff --staged`:
184
+
170
185
  ```
171
186
  {status.staged_diff}
172
187
  ```
@@ -224,13 +239,15 @@ def commit(
224
239
 
225
240
  if status.has_unstaged_changes:
226
241
  if Confirm.ask(
227
- "Modified files found. Add [bold yellow]all unstaged changes[/] to staging?"
242
+ "Modified files found. Add [bold yellow]all unstaged changes[/] to staging?",
243
+ default=True,
228
244
  ):
229
245
  repo.stage_modified()
230
246
  console.print("[green]Staged modified files.[/green]")
231
247
  if status.has_untracked_files:
232
248
  if Confirm.ask(
233
- "Untracked files found. Add [bold yellow]all untracked files and unstaged changes[/] to staging?"
249
+ "Untracked files found. Add [bold yellow]all untracked files and unstaged changes[/] to staging?",
250
+ default=True,
234
251
  ):
235
252
  repo.stage_files()
236
253
  console.print("[green]Staged untracked files.[/green]")
@@ -243,10 +260,11 @@ def commit(
243
260
  raise typer.Exit()
244
261
 
245
262
  # Generate or use provided commit message
246
- console.print("[cyan]Generating commit message...[/cyan]")
247
- with console.status("[cyan]Generating commit message using Copilot API...[/cyan]"):
263
+ with console.status("[cyan]Generating commit message...[/cyan]"):
248
264
  commit_message = generate_commit_message(repo, status, model)
249
265
 
266
+ console.print("[cyan]Generated commit message...[/cyan]")
267
+
250
268
  # Display commit message
251
269
  console.print(Panel(commit_message, title="Commit Message", border_style="green"))
252
270
 
@@ -292,7 +310,7 @@ def commit(
292
310
  @app.command()
293
311
  def authenticate():
294
312
  """Autheticate with GitHub Copilot."""
295
- Authentication().try_auth()
313
+ Authentication().auth()
296
314
 
297
315
 
298
316
  @app.command()
@@ -0,0 +1,40 @@
1
+ import subprocess
2
+ import shlex
3
+ from importlib import metadata
4
+ import os
5
+
6
+
7
+ DIR = os.path.dirname(os.path.realpath(__file__))
8
+
9
+ VERSION = metadata.version(__package__ or "git-copilot-commit")
10
+
11
+
12
+ def cmd(cmd, kind="") -> str:
13
+ """
14
+ Get git subprocess output
15
+ """
16
+ output = "unknown"
17
+ try:
18
+ output = (
19
+ subprocess.check_output(shlex.split(cmd), cwd=DIR, stderr=subprocess.STDOUT)
20
+ .decode()
21
+ .strip()
22
+ )
23
+ except Exception as _:
24
+ ...
25
+ return f"{kind}{output}"
26
+
27
+
28
+ def last_commit_id() -> str:
29
+ return cmd("git describe --always --dirty --abbrev=7")
30
+
31
+
32
+ def branch() -> str:
33
+ return cmd("git rev-parse --abbrev-ref HEAD")
34
+
35
+
36
+ def get_git_version() -> str:
37
+ return f"{last_commit_id()}-{branch()}"
38
+
39
+
40
+ __version__ = f"v{VERSION}-{get_git_version()}"
@@ -12,47 +12,26 @@ wheels = [
12
12
  ]
13
13
 
14
14
  [[package]]
15
- name = "certifi"
16
- version = "2025.7.14"
15
+ name = "anyio"
16
+ version = "4.9.0"
17
17
  source = { registry = "https://pypi.org/simple" }
18
- sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995", size = 163981, upload-time = "2025-07-14T03:29:28.449Z" }
18
+ dependencies = [
19
+ { name = "idna" },
20
+ { name = "sniffio" },
21
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
22
+ ]
23
+ sdist = { url = "https://files.pythonhosted.org/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028", size = 190949, upload-time = "2025-03-17T00:02:54.77Z" }
19
24
  wheels = [
20
- { url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", size = 162722, upload-time = "2025-07-14T03:29:26.863Z" },
25
+ { url = "https://files.pythonhosted.org/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c", size = 100916, upload-time = "2025-03-17T00:02:52.713Z" },
21
26
  ]
22
27
 
23
28
  [[package]]
24
- name = "charset-normalizer"
25
- version = "3.4.2"
29
+ name = "certifi"
30
+ version = "2025.7.14"
26
31
  source = { registry = "https://pypi.org/simple" }
27
- sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload-time = "2025-05-02T08:34:42.01Z" }
32
+ sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995", size = 163981, upload-time = "2025-07-14T03:29:28.449Z" }
28
33
  wheels = [
29
- { url = "https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7", size = 199936, upload-time = "2025-05-02T08:32:33.712Z" },
30
- { url = "https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3", size = 143790, upload-time = "2025-05-02T08:32:35.768Z" },
31
- { url = "https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a", size = 153924, upload-time = "2025-05-02T08:32:37.284Z" },
32
- { url = "https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214", size = 146626, upload-time = "2025-05-02T08:32:38.803Z" },
33
- { url = "https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a", size = 148567, upload-time = "2025-05-02T08:32:40.251Z" },
34
- { url = "https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd", size = 150957, upload-time = "2025-05-02T08:32:41.705Z" },
35
- { url = "https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981", size = 145408, upload-time = "2025-05-02T08:32:43.709Z" },
36
- { url = "https://files.pythonhosted.org/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c", size = 153399, upload-time = "2025-05-02T08:32:46.197Z" },
37
- { url = "https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b", size = 156815, upload-time = "2025-05-02T08:32:48.105Z" },
38
- { url = "https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d", size = 154537, upload-time = "2025-05-02T08:32:49.719Z" },
39
- { url = "https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f", size = 149565, upload-time = "2025-05-02T08:32:51.404Z" },
40
- { url = "https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c", size = 98357, upload-time = "2025-05-02T08:32:53.079Z" },
41
- { url = "https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e", size = 105776, upload-time = "2025-05-02T08:32:54.573Z" },
42
- { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload-time = "2025-05-02T08:32:56.363Z" },
43
- { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload-time = "2025-05-02T08:32:58.551Z" },
44
- { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload-time = "2025-05-02T08:33:00.342Z" },
45
- { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload-time = "2025-05-02T08:33:02.081Z" },
46
- { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload-time = "2025-05-02T08:33:04.063Z" },
47
- { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload-time = "2025-05-02T08:33:06.418Z" },
48
- { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload-time = "2025-05-02T08:33:08.183Z" },
49
- { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload-time = "2025-05-02T08:33:09.986Z" },
50
- { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload-time = "2025-05-02T08:33:11.814Z" },
51
- { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload-time = "2025-05-02T08:33:13.707Z" },
52
- { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload-time = "2025-05-02T08:33:15.458Z" },
53
- { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload-time = "2025-05-02T08:33:17.06Z" },
54
- { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload-time = "2025-05-02T08:33:18.753Z" },
55
- { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload-time = "2025-05-02T08:34:40.053Z" },
34
+ { url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", size = 162722, upload-time = "2025-07-14T03:29:26.863Z" },
56
35
  ]
57
36
 
58
37
  [[package]]
@@ -78,7 +57,7 @@ wheels = [
78
57
 
79
58
  [[package]]
80
59
  name = "git-copilot-commit"
81
- version = "0.1.5"
60
+ version = "0.1.7"
82
61
  source = { editable = "." }
83
62
  dependencies = [
84
63
  { name = "pycopilot" },
@@ -89,12 +68,49 @@ dependencies = [
89
68
 
90
69
  [package.metadata]
91
70
  requires-dist = [
92
- { name = "pycopilot", specifier = ">=0.1.1" },
71
+ { name = "pycopilot", specifier = ">=0.1.6" },
93
72
  { name = "rich", specifier = ">=14.0.0" },
94
73
  { name = "typer", specifier = ">=0.16.0" },
95
74
  { name = "xdg-base-dirs", specifier = ">=6.0.2" },
96
75
  ]
97
76
 
77
+ [[package]]
78
+ name = "h11"
79
+ version = "0.16.0"
80
+ source = { registry = "https://pypi.org/simple" }
81
+ sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" }
82
+ wheels = [
83
+ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" },
84
+ ]
85
+
86
+ [[package]]
87
+ name = "httpcore"
88
+ version = "1.0.9"
89
+ source = { registry = "https://pypi.org/simple" }
90
+ dependencies = [
91
+ { name = "certifi" },
92
+ { name = "h11" },
93
+ ]
94
+ sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" }
95
+ wheels = [
96
+ { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" },
97
+ ]
98
+
99
+ [[package]]
100
+ name = "httpx"
101
+ version = "0.28.1"
102
+ source = { registry = "https://pypi.org/simple" }
103
+ dependencies = [
104
+ { name = "anyio" },
105
+ { name = "certifi" },
106
+ { name = "httpcore" },
107
+ { name = "idna" },
108
+ ]
109
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" }
110
+ wheels = [
111
+ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" },
112
+ ]
113
+
98
114
  [[package]]
99
115
  name = "idna"
100
116
  version = "3.10"
@@ -148,20 +164,20 @@ wheels = [
148
164
 
149
165
  [[package]]
150
166
  name = "pycopilot"
151
- version = "0.1.1"
167
+ version = "0.1.6"
152
168
  source = { registry = "https://pypi.org/simple" }
153
169
  dependencies = [
170
+ { name = "httpx" },
154
171
  { name = "platformdirs" },
155
172
  { name = "prompt-toolkit" },
156
173
  { name = "pydantic" },
157
174
  { name = "questionary" },
158
- { name = "requests" },
159
175
  { name = "rich" },
160
176
  { name = "typer" },
161
177
  ]
162
- sdist = { url = "https://files.pythonhosted.org/packages/56/8e/3f2633fa37a6ab712c7608ab0ca640663e45ebcecf9ec8625d2a10206598/pycopilot-0.1.1.tar.gz", hash = "sha256:9b8322d78d3c3d2546fee62f4deebd130808775862344423357f373fcfc2cd30", size = 33847, upload-time = "2025-07-17T02:19:57.341Z" }
178
+ sdist = { url = "https://files.pythonhosted.org/packages/45/ae/9d540cfe9411ad9f5ab58080aab86a5a7902ab668ad16fb637f287c88ba7/pycopilot-0.1.6.tar.gz", hash = "sha256:84425265e0d587d964e7b5dd93de9d9175b849b7d718107a48efb749e5b88e8e", size = 31667, upload-time = "2025-07-17T15:39:42.473Z" }
163
179
  wheels = [
164
- { url = "https://files.pythonhosted.org/packages/c5/92/169a7a85f92c762bd3a58590f6afc36b380f82aa3938946a446bc2f039f2/pycopilot-0.1.1-py3-none-any.whl", hash = "sha256:9d3df1138a380b1d83d6f2bdf32d2aacc2443bbea6bb8f918fe804683dc19d91", size = 10565, upload-time = "2025-07-17T02:19:56.128Z" },
180
+ { url = "https://files.pythonhosted.org/packages/3e/5f/56cd35579f5d400b2ef9f0c62b41f6024936fbfc8f69e302036588052531/pycopilot-0.1.6-py3-none-any.whl", hash = "sha256:88f39535a87d1efdc2358357d956bbe0d9e6b5a6fd60d572d46c813fe23af2d0", size = 10811, upload-time = "2025-07-17T15:39:41.608Z" },
165
181
  ]
166
182
 
167
183
  [[package]]
@@ -242,21 +258,6 @@ wheels = [
242
258
  { url = "https://files.pythonhosted.org/packages/ad/3f/11dd4cd4f39e05128bfd20138faea57bec56f9ffba6185d276e3107ba5b2/questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec", size = 36747, upload-time = "2024-12-29T11:49:16.734Z" },
243
259
  ]
244
260
 
245
- [[package]]
246
- name = "requests"
247
- version = "2.32.4"
248
- source = { registry = "https://pypi.org/simple" }
249
- dependencies = [
250
- { name = "certifi" },
251
- { name = "charset-normalizer" },
252
- { name = "idna" },
253
- { name = "urllib3" },
254
- ]
255
- sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" }
256
- wheels = [
257
- { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" },
258
- ]
259
-
260
261
  [[package]]
261
262
  name = "rich"
262
263
  version = "14.0.0"
@@ -279,6 +280,15 @@ wheels = [
279
280
  { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" },
280
281
  ]
281
282
 
283
+ [[package]]
284
+ name = "sniffio"
285
+ version = "1.3.1"
286
+ source = { registry = "https://pypi.org/simple" }
287
+ sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" }
288
+ wheels = [
289
+ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" },
290
+ ]
291
+
282
292
  [[package]]
283
293
  name = "typer"
284
294
  version = "0.16.0"
@@ -315,15 +325,6 @@ wheels = [
315
325
  { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" },
316
326
  ]
317
327
 
318
- [[package]]
319
- name = "urllib3"
320
- version = "2.5.0"
321
- source = { registry = "https://pypi.org/simple" }
322
- sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" }
323
- wheels = [
324
- { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
325
- ]
326
-
327
328
  [[package]]
328
329
  name = "wcwidth"
329
330
  version = "0.2.13"
@@ -1,22 +0,0 @@
1
- [project]
2
- name = "git-copilot-commit"
3
- version = "0.1.5"
4
- description = "Automatically generate and commit changes using copilot"
5
- readme = "README.md"
6
- authors = [
7
- { name = "Dheepak Krishnamurthy", email = "1813121+kdheepak@users.noreply.github.com" },
8
- ]
9
- requires-python = ">=3.12"
10
- dependencies = [
11
- "pycopilot>=0.1.1",
12
- "rich>=14.0.0",
13
- "typer>=0.16.0",
14
- "xdg-base-dirs>=6.0.2",
15
- ]
16
-
17
- [project.scripts]
18
- git-copilot-commit = "git_copilot_commit.cli:app"
19
-
20
- [build-system]
21
- requires = ["hatchling"]
22
- build-backend = "hatchling.build"