|
1 | 1 | import os
|
| 2 | +import sys |
2 | 3 | import json
|
| 4 | +import time |
3 | 5 | import asyncio
|
4 | 6 | import logging
|
5 | 7 |
|
@@ -172,15 +174,33 @@ def make_github_operations(
|
172 | 174 | for repo_url in repo_urls:
|
173 | 175 | try:
|
174 | 176 | # Fork the repository
|
| 177 | + print("\n\n\n\nUPDATING FOR", repo_url, "\n\n\n", file=sys.stderr) |
175 | 178 | org, repo_name = repo_url.split("/")[-2:]
|
176 | 179 | repo = g.get_repo(f"{org}/{repo_name}")
|
177 | 180 | fork = user.create_fork(repo)
|
178 | 181 |
|
| 182 | + # Create a new branch from the default branch |
| 183 | + fork_not_ready_error = None |
| 184 | + for i in range(0, 5): |
| 185 | + try: |
| 186 | + fork_default_branch = fork.get_branch(fork.default_branch) |
| 187 | + fork_not_ready_error = None |
| 188 | + break |
| 189 | + except github.GithubException as error: |
| 190 | + fork_not_ready_error = error |
| 191 | + time.sleep(2) |
| 192 | + if fork_not_ready_error is not None: |
| 193 | + try: |
| 194 | + raise Exception( |
| 195 | + "Fork not yet ready" |
| 196 | + ) from fork_not_ready_error |
| 197 | + except Exception as error: |
| 198 | + logger.error(error) |
| 199 | + continue |
| 200 | + |
179 | 201 | commit_message = make_commit_message(repo, fork)
|
180 | 202 | pull_request_body = make_pull_request_body(repo, fork)
|
181 | 203 |
|
182 |
| - # Create a new branch from the default branch |
183 |
| - fork_default_branch = fork.get_branch(fork.default_branch) |
184 | 204 | try:
|
185 | 205 | fork.create_git_ref(
|
186 | 206 | ref="refs/heads/" + new_branch_name,
|
@@ -241,17 +261,27 @@ def make_github_operations(
|
241 | 261 | snoop.pp(fork)
|
242 | 262 | base = base_repo.default_branch
|
243 | 263 | head = f"{user.login}:{fork.name}:{new_branch_name}"
|
244 |
| - base_repo.create_pull( |
| 264 | + pr = base_repo.create_pull( |
245 | 265 | title=commit_message,
|
246 | 266 | body=pull_request_body,
|
247 | 267 | head=head,
|
248 | 268 | base=base,
|
249 | 269 | )
|
250 | 270 |
|
251 |
| - except GithubException as error: |
252 |
| - raise Exception( |
253 |
| - f"Unable to complete operations for {repo_url} due to {error}" |
254 |
| - ) from error |
| 271 | + print( |
| 272 | + "\n\n\n\nUPDATED SUCCESSFULLY", |
| 273 | + pr.html_url, |
| 274 | + "\n\n\n", |
| 275 | + file=sys.stderr, |
| 276 | + ) |
| 277 | + |
| 278 | + except Exception as error: |
| 279 | + try: |
| 280 | + raise Exception( |
| 281 | + f"Unable to complete operations for {repo_url} due to {error}" |
| 282 | + ) from error |
| 283 | + except Exception as error: |
| 284 | + logger.error(error) |
255 | 285 |
|
256 | 286 |
|
257 | 287 | import pathlib
|
|
0 commit comments