Skip to content

Commit

Permalink
Create merge-main-into-prs.yml (#78)
Browse files Browse the repository at this point in the history
  • Loading branch information
glenn-jocher committed Apr 14, 2024
1 parent 14578a0 commit 2dc17a6
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions .github/workflows/merge-main-into-prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 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/ultralytics'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- 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'))
repo = g.get_repo('ultralytics/ultralytics')
# List all open pull requests
open_pulls = repo.get_pulls(state='open', sort='created')
for pr in open_pulls:
try:
# Attempt to merge main into the PR branch
message = f"Merge 'main' into PR #{pr.number} by https://ultralytics.com/actions"
merge_commit = repo.merge(pr.head.ref, 'main', commit_message=message)
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 }}

0 comments on commit 2dc17a6

Please sign in to comment.