From b49591aeb5c1569e65ecc2a8c5a5b17ecd1d95ef Mon Sep 17 00:00:00 2001 From: Rostislav Simonik Date: Sun, 25 Apr 2021 17:12:31 +0200 Subject: [PATCH] Re-enable changes on push events --- markdown_embed_code/__main__.py | 38 ++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/markdown_embed_code/__main__.py b/markdown_embed_code/__main__.py index 25a3819..2476137 100644 --- a/markdown_embed_code/__main__.py +++ b/markdown_embed_code/__main__.py @@ -18,6 +18,7 @@ class Settings(BaseSettings): input_token: SecretStr github_actor: str github_repository: str + github_event_name: str github_event_path: Path @@ -26,6 +27,7 @@ class PartialGitHubEventInputs(BaseModel): class PartialGitHubEvent(BaseModel): + ref: Optional[str] = None number: Optional[int] = None inputs: Optional[PartialGitHubEventInputs] = None @@ -36,29 +38,39 @@ class PartialGitHubEvent(BaseModel): ["git", "config", "--local", "user.email", "github-actions@github.com"], check=True ) - g = Github(settings.input_token.get_secret_value()) repo = g.get_repo(settings.github_repository) if not settings.github_event_path.is_file(): sys.exit(1) contents = settings.github_event_path.read_text() event = PartialGitHubEvent.parse_raw(contents) -if event.number is not None: - number = event.number -elif event.inputs and event.inputs.number: - number = event.inputs.number -else: - sys.exit(1) -pr = repo.get_pull(number) -if pr.merged: - # ignore at merged - sys.exit(0) +ref = None + +if settings.github_event_name == 'pull_request': + if event.number is not None: + number = event.number + elif event.inputs and event.inputs.number: + number = event.inputs.number + else: + sys.exit(1) + + pr = repo.get_pull(number) + if pr.merged: + # ignore at merged + sys.exit(0) + ref = pr.head.ref +elif settings.github_event_name == 'push': + ref = event.ref + +if not ref: + print('unknown ref', ref) + sys.exit(0) + if not settings.input_output.is_dir(): output_path = settings.input_output else: output_path = settings.input_markdown - with open(settings.input_markdown, "r") as f: doc = f.read() @@ -82,6 +94,6 @@ class PartialGitHubEvent(BaseModel): subprocess.run(["git", "commit", "-m", settings.input_message], check=True) remote_repo = f"https://{settings.github_actor}:{settings.input_token.get_secret_value()}@github.com/{settings.github_repository}.git" -proc = subprocess.run(["git", "push", remote_repo, f"HEAD:{pr.head.ref}"], check=False) +proc = subprocess.run(["git", "push", remote_repo, f"HEAD:{ref}"], check=False) if proc.returncode != 0: sys.exit(1)