INNER CODE UNIT · Python
get_default_branch_head_sha
RockxyApp/Rockxy · .github/tools/cla_gate.py:145
def get_default_branch_head_sha(self, default_branch: str) -> str:
status, data = self._request("GET", f"/repos/{self._repo}/git/ref/heads/{default_branch}")
if status != 200 or not isinstance(data, dict):
raise RuntimeError(f"failed to read default branch ref: HTTP {status}")
return data["object"]["sha"]
def ensure_branch(self, branch: str, default_branch: str) -> None:
status, _ = self._request("GET", f"/repos/{self._repo}/git/ref/heads/{branch}")
if status == 200:
return
if status != 404:
raise RuntimeError(f"failed to probe branch {branch}: HTTP {status}")
base_sha = self.get_default_branch_head_sha(default_branch)
create_status, _ = self._request(
"POST",
f"/repos/{self._repo}/git/refs",
{"ref": f"refs/heads/{branch}", "sha": base_sha},
)