Update app.py
Browse files
app.py
CHANGED
@@ -100,34 +100,38 @@ def generate_release_notes(git_provider, repo_url, start_date, end_date, folder_
|
|
100 |
except Exception as e:
|
101 |
return f"An error occurred: {str(e)}", None
|
102 |
|
103 |
-
def update_summary_and_create_pr(repo_url, folder_location,
|
104 |
global pr_url
|
105 |
try:
|
106 |
g = Github(HF_GITHUB_TOKEN)
|
107 |
repo = g.get_repo(repo_url)
|
108 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
# Get the current content of SUMMARY.md
|
110 |
-
summary_path = f"{folder_location}/SUMMARY.md"
|
111 |
try:
|
112 |
summary_file = repo.get_contents(summary_path)
|
113 |
summary_content = summary_file.decoded_content.decode()
|
114 |
except GithubException as e:
|
115 |
if e.status == 404:
|
116 |
-
|
117 |
-
summary_content = "# Summary\n\n## Releases\n"
|
118 |
else:
|
119 |
raise
|
120 |
|
121 |
# Add new file link at the top of the Releases section
|
122 |
-
new_entry = f"
|
123 |
-
releases_index = summary_content.find("
|
124 |
if releases_index != -1:
|
125 |
insert_position = summary_content.find("\n", releases_index) + 1
|
126 |
updated_summary = (summary_content[:insert_position] + new_entry +
|
127 |
summary_content[insert_position:])
|
128 |
else:
|
129 |
-
|
130 |
-
updated_summary = summary_content + f"\n## Releases\n{new_entry}"
|
131 |
|
132 |
# Create a new branch for the PR
|
133 |
base_branch = repo.default_branch
|
@@ -138,24 +142,24 @@ def update_summary_and_create_pr(repo_url, folder_location, new_file_name, markd
|
|
138 |
# Update SUMMARY.md in the new branch
|
139 |
repo.update_file(
|
140 |
summary_path,
|
141 |
-
f"Update SUMMARY.md with new release notes {
|
142 |
updated_summary,
|
143 |
summary_file.sha if 'summary_file' in locals() else None,
|
144 |
branch=new_branch
|
145 |
)
|
146 |
|
147 |
# Create the new release notes file
|
148 |
-
new_file_path = f"{folder_location}/{
|
149 |
repo.create_file(
|
150 |
new_file_path,
|
151 |
-
f"Add release notes {
|
152 |
markdown_content,
|
153 |
branch=new_branch
|
154 |
)
|
155 |
|
156 |
# Create a pull request
|
157 |
pr = repo.create_pull(
|
158 |
-
title=f"Add release notes {
|
159 |
body="Automatically generated PR to add new release notes and update SUMMARY.md.",
|
160 |
head=new_branch,
|
161 |
base=base_branch
|
|
|
100 |
except Exception as e:
|
101 |
return f"An error occurred: {str(e)}", None
|
102 |
|
103 |
+
def update_summary_and_create_pr(repo_url, folder_location, start_date, end_date, markdown_content):
|
104 |
global pr_url
|
105 |
try:
|
106 |
g = Github(HF_GITHUB_TOKEN)
|
107 |
repo = g.get_repo(repo_url)
|
108 |
|
109 |
+
# Generate file name based on end date
|
110 |
+
file_name = f"{end_date}.md"
|
111 |
+
|
112 |
+
# Determine SUMMARY.md location
|
113 |
+
summary_folder = '/'.join(folder_location.split('/')[:-1])
|
114 |
+
summary_path = f"{summary_folder}/SUMMARY.md"
|
115 |
+
|
116 |
# Get the current content of SUMMARY.md
|
|
|
117 |
try:
|
118 |
summary_file = repo.get_contents(summary_path)
|
119 |
summary_content = summary_file.decoded_content.decode()
|
120 |
except GithubException as e:
|
121 |
if e.status == 404:
|
122 |
+
summary_content = "# Summary\n\nReleases\n"
|
|
|
123 |
else:
|
124 |
raise
|
125 |
|
126 |
# Add new file link at the top of the Releases section
|
127 |
+
new_entry = f"{end_date}\n"
|
128 |
+
releases_index = summary_content.find("Releases")
|
129 |
if releases_index != -1:
|
130 |
insert_position = summary_content.find("\n", releases_index) + 1
|
131 |
updated_summary = (summary_content[:insert_position] + new_entry +
|
132 |
summary_content[insert_position:])
|
133 |
else:
|
134 |
+
updated_summary = summary_content + f"Releases\n{new_entry}"
|
|
|
135 |
|
136 |
# Create a new branch for the PR
|
137 |
base_branch = repo.default_branch
|
|
|
142 |
# Update SUMMARY.md in the new branch
|
143 |
repo.update_file(
|
144 |
summary_path,
|
145 |
+
f"Update SUMMARY.md with new release notes {file_name}",
|
146 |
updated_summary,
|
147 |
summary_file.sha if 'summary_file' in locals() else None,
|
148 |
branch=new_branch
|
149 |
)
|
150 |
|
151 |
# Create the new release notes file
|
152 |
+
new_file_path = f"{folder_location}/{file_name}"
|
153 |
repo.create_file(
|
154 |
new_file_path,
|
155 |
+
f"Add release notes {file_name}",
|
156 |
markdown_content,
|
157 |
branch=new_branch
|
158 |
)
|
159 |
|
160 |
# Create a pull request
|
161 |
pr = repo.create_pull(
|
162 |
+
title=f"Add release notes {file_name} and update SUMMARY.md",
|
163 |
body="Automatically generated PR to add new release notes and update SUMMARY.md.",
|
164 |
head=new_branch,
|
165 |
base=base_branch
|