patchops 1.0.0__tar.gz → 1.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 (84) hide show
  1. {patchops-1.0.0/patchops.egg-info → patchops-1.0.1}/PKG-INFO +1 -1
  2. patchops-1.0.1/patchops/__init__.py +1 -0
  3. {patchops-1.0.0 → patchops-1.0.1}/patchops/cli.py +12 -13
  4. {patchops-1.0.0 → patchops-1.0.1/patchops.egg-info}/PKG-INFO +1 -1
  5. {patchops-1.0.0 → patchops-1.0.1}/setup.py +1 -1
  6. patchops-1.0.0/patchops/__init__.py +0 -1
  7. {patchops-1.0.0 → patchops-1.0.1}/MANIFEST.in +0 -0
  8. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/__pycache__/auth.cpython-311.pyc +0 -0
  9. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/__pycache__/config.cpython-311.pyc +0 -0
  10. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/__pycache__/db_utils.cpython-311.pyc +0 -0
  11. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/__pycache__/init_db.cpython-311.pyc +0 -0
  12. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/__pycache__/reports.cpython-311.pyc +0 -0
  13. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/analytics.py +0 -0
  14. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/api_client.py +0 -0
  15. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/app.py +0 -0
  16. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/auth.py +0 -0
  17. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/cache_manager.py +0 -0
  18. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/config.py +0 -0
  19. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/db_utils.py +0 -0
  20. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/email_service.py +0 -0
  21. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/file_manager.py +0 -0
  22. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/init_db.py +0 -0
  23. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/logger.py +0 -0
  24. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/payment_gateway.py +0 -0
  25. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/reports.py +0 -0
  26. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/search_engine.py +0 -0
  27. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/tests/smoke_test.py +0 -0
  28. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/tests/test_suite.py +0 -0
  29. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/users.db +0 -0
  30. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/utils.py +0 -0
  31. {patchops-1.0.0 → patchops-1.0.1}/PatchOps-Target/validator.py +0 -0
  32. {patchops-1.0.0 → patchops-1.0.1}/README.md +0 -0
  33. {patchops-1.0.0 → patchops-1.0.1}/frontend/README.md +0 -0
  34. {patchops-1.0.0 → patchops-1.0.1}/frontend/index.html +0 -0
  35. {patchops-1.0.0 → patchops-1.0.1}/frontend/script.js +0 -0
  36. {patchops-1.0.0 → patchops-1.0.1}/frontend/server.py +0 -0
  37. {patchops-1.0.0 → patchops-1.0.1}/frontend/style.css +0 -0
  38. {patchops-1.0.0 → patchops-1.0.1}/lambdas/__init__.py +0 -0
  39. {patchops-1.0.0 → patchops-1.0.1}/lambdas/__pycache__/__init__.cpython-311.pyc +0 -0
  40. {patchops-1.0.0 → patchops-1.0.1}/lambdas/code_analyzer/__init__.py +0 -0
  41. {patchops-1.0.0 → patchops-1.0.1}/lambdas/code_analyzer/__pycache__/__init__.cpython-311.pyc +0 -0
  42. {patchops-1.0.0 → patchops-1.0.1}/lambdas/code_analyzer/__pycache__/handler.cpython-311.pyc +0 -0
  43. {patchops-1.0.0 → patchops-1.0.1}/lambdas/code_analyzer/handler.py +0 -0
  44. {patchops-1.0.0 → patchops-1.0.1}/lambdas/component_tester/__pycache__/handler.cpython-311.pyc +0 -0
  45. {patchops-1.0.0 → patchops-1.0.1}/lambdas/component_tester/handler.py +0 -0
  46. {patchops-1.0.0 → patchops-1.0.1}/lambdas/exploit_crafter/__init__.py +0 -0
  47. {patchops-1.0.0 → patchops-1.0.1}/lambdas/exploit_crafter/__pycache__/__init__.cpython-311.pyc +0 -0
  48. {patchops-1.0.0 → patchops-1.0.1}/lambdas/exploit_crafter/__pycache__/handler.cpython-311.pyc +0 -0
  49. {patchops-1.0.0 → patchops-1.0.1}/lambdas/exploit_crafter/handler.py +0 -0
  50. {patchops-1.0.0 → patchops-1.0.1}/lambdas/graph_builder/__pycache__/handler.cpython-311.pyc +0 -0
  51. {patchops-1.0.0 → patchops-1.0.1}/lambdas/graph_builder/handler.py +0 -0
  52. {patchops-1.0.0 → patchops-1.0.1}/lambdas/neighbor_resolver/__pycache__/handler.cpython-311.pyc +0 -0
  53. {patchops-1.0.0 → patchops-1.0.1}/lambdas/neighbor_resolver/handler.py +0 -0
  54. {patchops-1.0.0 → patchops-1.0.1}/lambdas/orchestrator/__init__.py +0 -0
  55. {patchops-1.0.0 → patchops-1.0.1}/lambdas/orchestrator/handler.py +0 -0
  56. {patchops-1.0.0 → patchops-1.0.1}/lambdas/patch_writer/__init__.py +0 -0
  57. {patchops-1.0.0 → patchops-1.0.1}/lambdas/patch_writer/__pycache__/__init__.cpython-311.pyc +0 -0
  58. {patchops-1.0.0 → patchops-1.0.1}/lambdas/patch_writer/__pycache__/handler.cpython-311.pyc +0 -0
  59. {patchops-1.0.0 → patchops-1.0.1}/lambdas/patch_writer/handler.py +0 -0
  60. {patchops-1.0.0 → patchops-1.0.1}/lambdas/pr_generator/__init__.py +0 -0
  61. {patchops-1.0.0 → patchops-1.0.1}/lambdas/pr_generator/__pycache__/__init__.cpython-311.pyc +0 -0
  62. {patchops-1.0.0 → patchops-1.0.1}/lambdas/pr_generator/__pycache__/handler.cpython-311.pyc +0 -0
  63. {patchops-1.0.0 → patchops-1.0.1}/lambdas/pr_generator/__pycache__/template.cpython-311.pyc +0 -0
  64. {patchops-1.0.0 → patchops-1.0.1}/lambdas/pr_generator/handler.py +0 -0
  65. {patchops-1.0.0 → patchops-1.0.1}/lambdas/pr_generator/template.py +0 -0
  66. {patchops-1.0.0 → patchops-1.0.1}/lambdas/requirements_checker/__pycache__/handler.cpython-311.pyc +0 -0
  67. {patchops-1.0.0 → patchops-1.0.1}/lambdas/requirements_checker/handler.py +0 -0
  68. {patchops-1.0.0 → patchops-1.0.1}/lambdas/security_reviewer/__init__.py +0 -0
  69. {patchops-1.0.0 → patchops-1.0.1}/lambdas/security_reviewer/__pycache__/__init__.cpython-311.pyc +0 -0
  70. {patchops-1.0.0 → patchops-1.0.1}/lambdas/security_reviewer/__pycache__/handler.cpython-311.pyc +0 -0
  71. {patchops-1.0.0 → patchops-1.0.1}/lambdas/security_reviewer/handler.py +0 -0
  72. {patchops-1.0.0 → patchops-1.0.1}/lambdas/shared/__init__.py +0 -0
  73. {patchops-1.0.0 → patchops-1.0.1}/lambdas/shared/__pycache__/__init__.cpython-311.pyc +0 -0
  74. {patchops-1.0.0 → patchops-1.0.1}/lambdas/shared/__pycache__/utils.cpython-311.pyc +0 -0
  75. {patchops-1.0.0 → patchops-1.0.1}/lambdas/shared/utils.py +0 -0
  76. {patchops-1.0.0 → patchops-1.0.1}/lambdas/system_tester/__pycache__/handler.cpython-311.pyc +0 -0
  77. {patchops-1.0.0 → patchops-1.0.1}/lambdas/system_tester/handler.py +0 -0
  78. {patchops-1.0.0 → patchops-1.0.1}/patchops.egg-info/SOURCES.txt +0 -0
  79. {patchops-1.0.0 → patchops-1.0.1}/patchops.egg-info/dependency_links.txt +0 -0
  80. {patchops-1.0.0 → patchops-1.0.1}/patchops.egg-info/entry_points.txt +0 -0
  81. {patchops-1.0.0 → patchops-1.0.1}/patchops.egg-info/requires.txt +0 -0
  82. {patchops-1.0.0 → patchops-1.0.1}/patchops.egg-info/top_level.txt +0 -0
  83. {patchops-1.0.0 → patchops-1.0.1}/pipeline_api.py +0 -0
  84. {patchops-1.0.0 → patchops-1.0.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: patchops
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Requires-Python: >=3.9
5
5
  Requires-Dist: click
6
6
  Requires-Dist: fastapi
@@ -0,0 +1 @@
1
+ __version__ = "1.0.0"
@@ -1,15 +1,18 @@
1
1
  import click
2
2
  import os
3
- import sys
4
3
  import subprocess
5
4
  import threading
6
5
  import webbrowser
7
6
  import uvicorn
8
7
  import patchops
9
8
 
10
- @click.command()
9
+ @click.group()
11
10
  def cli():
12
- """PatchOps — Autonomous Security CLI"""
11
+ pass
12
+
13
+ @cli.command()
14
+ def scan():
15
+ """Scan current repo for vulnerabilities, patch, and open a PR"""
13
16
  click.echo("╔══════════════════════════════════════════╗")
14
17
  click.echo("║ 🛡 PatchOps — Autonomous Security CLI ║")
15
18
  click.echo("║ Detect → Exploit → Patch → PR ║")
@@ -24,9 +27,8 @@ def cli():
24
27
  os.environ["GITHUB_TOKEN"] = github_token
25
28
 
26
29
  target = os.getcwd()
27
-
28
- # Detect GitHub repo from git remote
29
- github_repo = "khushidubeyokok/PatchOpsTarget" # Fallback
30
+
31
+ github_repo = "khushidubeyokok/PatchOpsTarget"
30
32
  try:
31
33
  result = subprocess.run(
32
34
  ["git", "remote", "get-url", "origin"],
@@ -35,16 +37,15 @@ def cli():
35
37
  raw_url = result.stdout.strip()
36
38
  if raw_url:
37
39
  if "github.com/" in raw_url:
38
- github_repo = raw_url.split("github.com/")[1].replace(".git", "")
40
+ github_repo = raw_url.split("github.com/")[1].replace(".git", "").strip()
39
41
  elif "github.com:" in raw_url:
40
- github_repo = raw_url.split("github.com:")[1].replace(".git", "")
42
+ github_repo = raw_url.split("github.com:")[1].replace(".git", "").strip()
41
43
  except Exception:
42
44
  pass
43
45
 
44
46
  os.environ["PATCHOPS_TARGET"] = target
45
47
  os.environ["GITHUB_REPO"] = github_repo
46
48
 
47
- # Find the package's own installed location so uvicorn can find pipeline_api.py
48
49
  package_dir = os.path.dirname(os.path.abspath(patchops.__file__))
49
50
  base_dir = os.path.dirname(package_dir)
50
51
  os.chdir(base_dir)
@@ -53,6 +54,7 @@ def cli():
53
54
  click.echo(f"→ Repo: {github_repo}")
54
55
  click.echo(f"→ Dashboard: http://localhost:8000")
55
56
  click.echo("→ Press Ctrl+C to stop")
57
+ click.echo("")
56
58
 
57
59
  threading.Timer(2.0, lambda: webbrowser.open("http://localhost:8000")).start()
58
60
 
@@ -62,7 +64,4 @@ def cli():
62
64
  click.echo("\nPatchOps stopped.")
63
65
 
64
66
  def main():
65
- cli()
66
-
67
- if __name__ == "__main__":
68
- main()
67
+ cli()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: patchops
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Requires-Python: >=3.9
5
5
  Requires-Dist: click
6
6
  Requires-Dist: fastapi
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="patchops",
5
- version="1.0.0",
5
+ version="1.0.1",
6
6
  packages=find_packages(),
7
7
  include_package_data=True,
8
8
  entry_points={
@@ -1 +0,0 @@
1
- python__version__ = "1.0.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes