From 77aa0e61afebadf574f22b4473b0e283c546d7d9 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 14 Apr 2024 06:14:49 -0700 Subject: [PATCH 2/6] Create merge-main-into-prs.yml (#12918) * Create merge-main-into-prs.yml Signed-off-by: Glenn Jocher * Update merge-main-into-prs.yml Signed-off-by: Glenn Jocher --------- Signed-off-by: Glenn Jocher --- .github/workflows/merge-main-into-prs.yml | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/merge-main-into-prs.yml diff --git a/.github/workflows/merge-main-into-prs.yml b/.github/workflows/merge-main-into-prs.yml new file mode 100644 index 000000000..7ac983be1 --- /dev/null +++ b/.github/workflows/merge-main-into-prs.yml @@ -0,0 +1,58 @@ +# Ultralytics YOLO 🚀, AGPL-3.0 license +# Automatically merges repository 'main' branch into all open PRs to keep them up-to-date +# Action runs on updates to main branch so when one PR merges to main all others update + +name: Merge main into PRs + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + Merge: + if: github.repository == 'ultralytics/yolov5' + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: main + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + cache: "pip" # caching pip dependencies + - name: Install requirements + run: | + pip install pygithub + - name: Merge main into PRs + shell: python + run: | + from github import Github + import os + + # Authenticate with the GitHub Token + g = Github(os.getenv('GITHUB_TOKEN')) + + # Get the repository dynamically + repo = g.get_repo(os.getenv('GITHUB_REPOSITORY')) + + # List all open pull requests + open_pulls = repo.get_pulls(state='open', sort='created') + + for pr in open_pulls: + # Compare PR head with main to see if it's behind + comparison = repo.compare(pr.base.ref, pr.head.ref) # Ensure correct order of base and head + if comparison.behind_by > 0: + try: + # Merge main into the PR branch + success = pr.update_branch() + assert success, "Branch update failed" + print(f"Merged 'main' into PR #{pr.number} ({pr.head.ref}) successfully.") + except Exception as e: + print(f"Could not merge 'main' into PR #{pr.number} ({pr.head.ref}): {e}") + env: + GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} From a3ddc1795e159699418c9f63403f4ad6a92f75aa Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 14 Apr 2024 06:19:07 -0700 Subject: [PATCH 3/6] Update to `ultralytics>=8.1.47` (#12919) Signed-off-by: Glenn Jocher --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fc3bf6766..1472a9820 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,7 +78,7 @@ dependencies = [ "thop>=0.1.1", # FLOPs computation "pandas>=1.1.4", "seaborn>=0.11.0", # plotting - "ultralytics>=8.0.232" + "ultralytics>=8.1.47" ] # Optional dependencies ------------------------------------------------------------------------------------------------ From 6c8f6933521ee32600b506970af1402ce02b443a Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 14 Apr 2024 06:23:17 -0700 Subject: [PATCH 4/6] Update merge-main-into-prs.yml (#12920) Signed-off-by: Glenn Jocher --- .github/workflows/merge-main-into-prs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/merge-main-into-prs.yml b/.github/workflows/merge-main-into-prs.yml index 7ac983be1..445dd2ac7 100644 --- a/.github/workflows/merge-main-into-prs.yml +++ b/.github/workflows/merge-main-into-prs.yml @@ -9,6 +9,7 @@ on: push: branches: - main + - master jobs: Merge: @@ -19,7 +20,6 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - ref: main - uses: actions/setup-python@v5 with: python-version: "3.11" @@ -50,9 +50,9 @@ jobs: # Merge main into the PR branch success = pr.update_branch() assert success, "Branch update failed" - print(f"Merged 'main' into PR #{pr.number} ({pr.head.ref}) successfully.") + print(f"Merged 'master' into PR #{pr.number} ({pr.head.ref}) successfully.") except Exception as e: - print(f"Could not merge 'main' into PR #{pr.number} ({pr.head.ref}): {e}") + print(f"Could not merge 'master' into PR #{pr.number} ({pr.head.ref}): {e}") env: GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} From 51dc1af6e82fbcc0bb2eccddc2148bbc0268695c Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 14 Apr 2024 06:30:37 -0700 Subject: [PATCH 5/6] Update merge-main-into-prs.yml (#12921) Signed-off-by: Glenn Jocher --- .github/workflows/merge-main-into-prs.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/merge-main-into-prs.yml b/.github/workflows/merge-main-into-prs.yml index 445dd2ac7..06757d3f1 100644 --- a/.github/workflows/merge-main-into-prs.yml +++ b/.github/workflows/merge-main-into-prs.yml @@ -44,15 +44,15 @@ jobs: for pr in open_pulls: # Compare PR head with main to see if it's behind - comparison = repo.compare(pr.base.ref, pr.head.ref) # Ensure correct order of base and head - if comparison.behind_by > 0: - try: + try: + comparison = repo.compare(pr.base.ref, pr.head.ref) # Ensure correct order of base and head + if comparison.behind_by > 0: # Merge main into the PR branch success = pr.update_branch() assert success, "Branch update failed" print(f"Merged 'master' into PR #{pr.number} ({pr.head.ref}) successfully.") - except Exception as e: - print(f"Could not merge 'master' into PR #{pr.number} ({pr.head.ref}): {e}") + except Exception as e: + print(f"Could not merge 'master' into PR #{pr.number} ({pr.head.ref}): {e}") env: GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} From cf8b67b7e9b49bed087ef27b4847edd84c687c34 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 14 Apr 2024 07:36:44 -0700 Subject: [PATCH 6/6] Update merge-main-into-prs.yml (#12922) Signed-off-by: Glenn Jocher --- .github/workflows/merge-main-into-prs.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/merge-main-into-prs.yml b/.github/workflows/merge-main-into-prs.yml index 06757d3f1..9ed945c78 100644 --- a/.github/workflows/merge-main-into-prs.yml +++ b/.github/workflows/merge-main-into-prs.yml @@ -45,12 +45,10 @@ jobs: for pr in open_pulls: # Compare PR head with main to see if it's behind try: - comparison = repo.compare(pr.base.ref, pr.head.ref) # Ensure correct order of base and head - if comparison.behind_by > 0: - # Merge main into the PR branch - success = pr.update_branch() - assert success, "Branch update failed" - print(f"Merged 'master' into PR #{pr.number} ({pr.head.ref}) successfully.") + # Merge main into the PR branch + success = pr.update_branch() + assert success, "Branch update failed" + print(f"Merged 'master' into PR #{pr.number} ({pr.head.ref}) successfully.") except Exception as e: print(f"Could not merge 'master' into PR #{pr.number} ({pr.head.ref}): {e}") env: