ultralytics-actions 0.0.10__py3-none-any.whl → 0.0.17__py3-none-any.whl

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.
actions/__init__.py CHANGED
@@ -22,4 +22,4 @@
22
22
  # ├── test_summarize_pr.py
23
23
  # └── ...
24
24
 
25
- __version__ = "0.0.10"
25
+ __version__ = "0.0.17"
actions/summarize_pr.py CHANGED
@@ -1,5 +1,7 @@
1
1
  # Ultralytics Actions 🚀, AGPL-3.0 license https://ultralytics.com/license
2
2
 
3
+ import time
4
+
3
5
  import requests
4
6
 
5
7
  from .utils import (
@@ -39,24 +41,30 @@ def generate_pr_summary(repo_name, diff_text):
39
41
  ]
40
42
  reply = get_completion(messages)
41
43
  if len(diff_text) > limit:
42
- return SUMMARY_START + "**WARNING ⚠️** this PR is very large, summary may not cover all changes.\n\n" + reply
43
- else:
44
- return SUMMARY_START + reply
44
+ reply = "**WARNING ⚠️** this PR is very large, summary may not cover all changes.\n\n" + reply
45
+ return SUMMARY_START + reply
45
46
 
46
47
 
47
- def update_pr_description(repo_name, pr_number, new_summary):
48
- """Updates the PR description with a new summary, replacing existing summary if present."""
49
- # Fetch the current PR description
48
+ def update_pr_description(repo_name, pr_number, new_summary, max_retries=2):
49
+ """Updates PR description with new summary, retrying if description is None."""
50
50
  pr_url = f"{GITHUB_API_URL}/repos/{repo_name}/pulls/{pr_number}"
51
- pr_response = requests.get(pr_url, headers=GITHUB_HEADERS)
52
- pr_data = pr_response.json()
53
- current_description = pr_data.get("body") or "" # warning, can be None
51
+ description = ""
52
+ for i in range(max_retries + 1):
53
+ description = requests.get(pr_url, headers=GITHUB_HEADERS).json().get("body") or ""
54
+ if description:
55
+ break
56
+ if i < max_retries:
57
+ print("No current PR description found, retrying...")
58
+ time.sleep(1)
54
59
 
55
60
  # Check if existing summary is present and update accordingly
56
- if SUMMARY_START in current_description:
57
- updated_description = current_description.split(SUMMARY_START)[0] + new_summary
61
+ start = "## 🛠️ PR Summary"
62
+ if start in description:
63
+ print("Existing PR Summary found, replacing.")
64
+ updated_description = description.split(start)[0] + new_summary
58
65
  else:
59
- updated_description = current_description + "\n\n" + new_summary
66
+ print("PR Summary not found, appending.")
67
+ updated_description = description + "\n\n" + new_summary
60
68
 
61
69
  # Update the PR description
62
70
  update_response = requests.patch(pr_url, json={"body": updated_description}, headers=GITHUB_HEADERS)
@@ -36,6 +36,7 @@ def is_url(url, check=True, max_attempts=3, timeout=2):
36
36
  "mailto:",
37
37
  "github.com", # ignore GitHub links that may be private repos
38
38
  "kaggle.com", # blocks automated header requests
39
+ "reddit.com", # blocks automated header requests
39
40
  )
40
41
  try:
41
42
  # Check allow list
@@ -5,6 +5,8 @@ from pathlib import Path
5
5
 
6
6
  import requests
7
7
 
8
+ from actions import __version__
9
+
8
10
  GITHUB_TOKEN = os.getenv("GITHUB_TOKEN")
9
11
  GITHUB_REPOSITORY = os.getenv("GITHUB_REPOSITORY")
10
12
  GITHUB_EVENT_NAME = os.getenv("GITHUB_EVENT_NAME")
@@ -121,7 +123,8 @@ def ultralytics_actions_info():
121
123
 
122
124
  # Print information
123
125
  max_key_length = max(len(key) for key in info.keys())
124
- print("Ultralytics Actions Information " + "-" * 40) # header (72 long)
126
+ header = f"Ultralytics Actions {__version__} Information " + "-" * 40
127
+ print(header)
125
128
  for key, value in info.items():
126
129
  print(f"{key:<{max_key_length + 5}}{value}")
127
- print("-" * 72) # footer
130
+ print("-" * len(header)) # footer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics-actions
3
- Version: 0.0.10
3
+ Version: 0.0.17
4
4
  Summary: Ultralytics Actions for GitHub automation and PR management.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Topic :: Software Development
24
25
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
26
  Classifier: Topic :: Internet :: WWW/HTTP
@@ -0,0 +1,15 @@
1
+ actions/__init__.py,sha256=08IezJVMpfPmth0_7crsshbVtnEu64LBbXbpf2O-F1Y,749
2
+ actions/first_interaction.py,sha256=cLXo5hmhOgTfk7F9LbGJeRdg6vvrKUe-0taCa_TkpAg,17683
3
+ actions/summarize_pr.py,sha256=vrLg_Ddjd9WvWxHfnWn_ksexlJfWpxP020e6fFcH4ic,3968
4
+ actions/summarize_release.py,sha256=l8NBdTAXLysfNKl1Kf_1tyuBRmeEBLyzTDXS6s5_eQg,8350
5
+ actions/update_markdown_code_blocks.py,sha256=WBNcMD_KKsZS-qSPBn6O1G0ggQ_VrT-jTQffbg7xH_M,6369
6
+ actions/utils/__init__.py,sha256=0vRjFc7i2WOlphuxdUxQo5BuNipgwGw2Bs-fdUBDeUw,973
7
+ actions/utils/common_utils.py,sha256=XT8GG0SWBtlZLruA0nKrY4AJpkitvPbM8zndE8etuDo,3548
8
+ actions/utils/github_utils.py,sha256=dnrbU4Z4LJBIOZLCRifZqVfyiOqsJMIHBHOssj-Y2y8,5488
9
+ actions/utils/openai_utils.py,sha256=SQWOjU3hdfI_0LKb3uqM5pNsoMyE7W0hGxXy7ISk97M,1823
10
+ ultralytics_actions-0.0.17.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
11
+ ultralytics_actions-0.0.17.dist-info/METADATA,sha256=M_VYd04s_hMXWWECK6MwSN5DCzes3llrzxQrmG4exHQ,10586
12
+ ultralytics_actions-0.0.17.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
13
+ ultralytics_actions-0.0.17.dist-info/entry_points.txt,sha256=GowvOFplj0C7JmsjbKcbpgLpdf2r921pcaOQkAHWZRA,378
14
+ ultralytics_actions-0.0.17.dist-info/top_level.txt,sha256=5apM5x80QlJcGbACn1v3fkmIuL1-XQCKcItJre7w7Tw,8
15
+ ultralytics_actions-0.0.17.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,15 +0,0 @@
1
- actions/__init__.py,sha256=Eko4c5hZ6l7Dg7GO0v0C5Lp72mdL4RDxAjkLO2mjqsI,749
2
- actions/first_interaction.py,sha256=cLXo5hmhOgTfk7F9LbGJeRdg6vvrKUe-0taCa_TkpAg,17683
3
- actions/summarize_pr.py,sha256=ysbGgomPXMXBZQQROWTv06syA59gJmGMvpWxDO66cLQ,3779
4
- actions/summarize_release.py,sha256=l8NBdTAXLysfNKl1Kf_1tyuBRmeEBLyzTDXS6s5_eQg,8350
5
- actions/update_markdown_code_blocks.py,sha256=WBNcMD_KKsZS-qSPBn6O1G0ggQ_VrT-jTQffbg7xH_M,6369
6
- actions/utils/__init__.py,sha256=0vRjFc7i2WOlphuxdUxQo5BuNipgwGw2Bs-fdUBDeUw,973
7
- actions/utils/common_utils.py,sha256=PaXyUAf675PEjzXY7ZFCcyfes1mkibB1OuvKU06N-ug,3490
8
- actions/utils/github_utils.py,sha256=2H4pRum8tLSbLKGoO85Ea4E8psxZICyvFO_1hwQPuoU,5431
9
- actions/utils/openai_utils.py,sha256=SQWOjU3hdfI_0LKb3uqM5pNsoMyE7W0hGxXy7ISk97M,1823
10
- ultralytics_actions-0.0.10.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
11
- ultralytics_actions-0.0.10.dist-info/METADATA,sha256=KhVf3iB6wqE6AuGSi0NSJBCAXFj-cq1Knn2xZRn9r3I,10535
12
- ultralytics_actions-0.0.10.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
13
- ultralytics_actions-0.0.10.dist-info/entry_points.txt,sha256=GowvOFplj0C7JmsjbKcbpgLpdf2r921pcaOQkAHWZRA,378
14
- ultralytics_actions-0.0.10.dist-info/top_level.txt,sha256=5apM5x80QlJcGbACn1v3fkmIuL1-XQCKcItJre7w7Tw,8
15
- ultralytics_actions-0.0.10.dist-info/RECORD,,