Repository navigation
Expand file tree
/
Copy pathupdate_version_number.py
More file actions
58 lines (48 loc) · 2.02 KB
/
Copy pathupdate_version_number.py
File metadata and controls
58 lines (48 loc) · 2.02 KB
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
52
53
54
55
56
57
58
import os
from datetime import datetime, timedelta, timezone
import github
version = datetime.now(tz=timezone(timedelta())).strftime("%Y.%m")
branch_name = f"v{version}"
access_key = os.environ.get("PA_TOKEN", None)
git = github.Github(auth=github.Auth.Token(access_key))
defelement = git.get_repo("DefElement/DefElement")
main_branch = defelement.get_branch("main")
ref = defelement.get_git_ref("heads/main")
base_tree = defelement.get_git_tree(main_branch.commit.sha)
defelement.create_git_ref(ref=f"refs/heads/{branch_name}", sha=main_branch.commit.sha)
new_branch = defelement.get_branch(branch_name)
# Update pyproject.toml
pyproject_file = defelement.get_contents("pyproject.toml", main_branch.commit.sha)
pyproject = pyproject_file.decoded_content.decode("utf8")
pre_project, post_project = pyproject.split("[project]\n")
pre_version, post_version = post_project.split("version = ")
post_version = post_version.split("\n", 1)[1]
pyproject = f'{pre_project}[project]\n{pre_version}version = "{version}"\n{post_version}'
defelement.update_file(
"pyproject.toml",
"[AUTOMATED] Update version number",
pyproject,
sha=pyproject_file.sha,
branch=branch_name,
)
# Update .zenodo.json
zenodo_file = defelement.get_contents(".zenodo.json", main_branch.commit.sha)
zenodo = zenodo_file.decoded_content.decode("utf8")
pre_version, post_version = zenodo.split('"version": "')
post_version = post_version.split('"', 1)[1]
zenodo = f'{pre_version}"version": "v{version}"{post_version}'
pre_pubdate, post_pubdate = zenodo.split('"publication_date": "')
post_pubdate = post_pubdate.split('"', 1)[1]
zenodo = f'{pre_pubdate}"publication_date": "{datetime.now(tz=timezone(timedelta())).strftime("%Y-%m-%d")}"{post_pubdate}'
defelement.update_file(
".zenodo.json",
"[AUTOMATED] Update version number",
zenodo,
sha=zenodo_file.sha,
branch=branch_name,
)
pr = defelement.create_pull(
title="[AUTOMATED] Update version number", body="", base="main", head=branch_name
)
pr.enable_automerge("SQUASH")
print(f"branch={branch_name}")