-
Notifications
You must be signed in to change notification settings - Fork 0
/
sync_readme.py
51 lines (43 loc) · 1.63 KB
/
sync_readme.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os
from github import Github
from github.GithubException import UnknownObjectException
def sync_readme(org_name, repo_a_name, repo_b_name, target_subdir):
github_token = os.environ.get('GITHUB_TOKEN')
if not github_token:
raise ValueError("GitHub token must be set")
g = Github(github_token)
try:
org = g.get_organization(org_name)
repo_a = org.get_repo(repo_a_name)
repo_b = org.get_repo(repo_b_name)
try:
readme_a = repo_a.get_contents("README.md")
except UnknownObjectException:
print(f"No README.md found in {repo_a_name}")
return
target_path = f"{target_subdir}/lunch-and-learn.md"
try:
existing_readme = repo_b.get_contents(target_path)
repo_b.update_file(
path=target_path,
message=f"Update README from {repo_a_name}",
content=readme_a.decoded_content,
sha=existing_readme.sha
)
print(f"Updated README in {repo_b_name}/{target_path}")
except UnknownObjectException:
repo_b.create_file(
path=target_path,
message=f"Add README from {repo_a_name}",
content=readme_a.decoded_content
)
print(f"Created README in {repo_b_name}/{target_path}")
except Exception as e:
print(f"An error occurred: {e}")
# Replace these with your specific repository details
sync_readme(
org_name="nimh-dsst",
repo_a_name="lunch-and-learn",
repo_b_name="dsst-rtd",
target_subdir="docs"
)