40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import os
|
|
from git import Git
|
|
from git.repo import BaseRepository
|
|
from git.exc import InvalidGitRepositoryError
|
|
from git.remote import RemoteAction
|
|
|
|
|
|
def try_something(test):
|
|
|
|
# Set the path to your blog repo here
|
|
blog_repo = "/path/to/your/blog/repo"
|
|
|
|
|
|
# Checkout a new branch and create a new file for our blog post
|
|
branch_name = "new-post"
|
|
try:
|
|
repo = Git(blog_repo)
|
|
repo.checkout("-b", branch_name, "origin/main")
|
|
with open("my-blog-post.md", "w") as f:
|
|
f.write(content)
|
|
except InvalidGitRepositoryError:
|
|
# Handle repository errors gracefully
|
|
pass
|
|
|
|
# Add and commit the changes to Git
|
|
repo.add("my-blog-post.md")
|
|
repo.commit("-m", "Added new blog post about DevOps best practices.")
|
|
|
|
# Push the changes to Git and create a PR
|
|
repo.remote().push("refs/heads/{0}:refs/for/main".format(branch_name), "--set-upstream")
|
|
base_branch = "origin/main"
|
|
target_branch = "main"
|
|
pr_title = "DevOps best practices"
|
|
try:
|
|
repo.create_head("{0}-{1}", base=base_branch, message="{}".format(pr_title))
|
|
except RemoteAction.GitExitStatus as e:
|
|
# Handle Git exit status errors gracefully
|
|
pass
|
|
|