Ryujinx-Mako/ryujinx_mako/commands/setup_git.py
TSRBerry 628d977de2
Create a new python package for the current scripts (#1)
* infra: Add PR triage action (#5293)

This is a bare minimal triage action that handle big categories.

In the future we could also label all services correctly but
I didn't felt this was required for a first iteration.

* infra: Fix PR triage workflow glob patterns (#5297)

* Use glob patterns to match file paths

* Update ignored paths for releases

* Adjust build.yml as well

* Add names to auto-assign steps

* Fix developer team name

* Allow build workflows to run if workflows changed

* Fix action version (#5299)

* infra: Sync paths-ignore with release job and attempt to fix review assign

* infra: Fix PR triage once and for all (#5442)

Switch to a custom made python script that query GitHub API to grab latest state of the PR after label assign.

* infra: Fix team name in reviewer.yml

* infra: do not assign developers team for now

Hopefully fix PR triage for real...

* Introduce Mako to fix pr_triage workflow (#5574)

* pr_triage: Fix invalid workflow

* Don't assign reviewers to draft PRs

* Add team review request for developers team

* Introduce Mako to make team reviewers work

* Convert app and installation ids to int (#5587)

* infra: add missing quotes around @ developers in reviewers.yml

* Adjust README.md and LICENSE

* Remove unneeded workflow files

* Add basic .editorconfig

* Add basic requirements.txt

* Add dependabot.yml

* Add formatting workflow

* Move update_reviewers.py into a new python module

* Add reviewers.yml template

* Replace requirements.txt with poetry

* Fix typo

* Add setup-mako action

* Add constants to private module

* Migrate update_reviewers to subcommand

* Add NullHandler for root logger

* Add setup-git subcommand

* Group all subcommands

* Add main script for ryujinx_mako

* Create ryujinx-mako command

* Add more information to README.md

* Apply black formatting

* Make PR author check case-insensitive

---------

Co-authored-by: Mary <mary@mary.zone>
Co-authored-by: ryujinx-mako[bot] <142357924+ryujinx-mako[bot]@users.noreply.github.com>
2023-08-30 19:00:29 +02:00

49 lines
1.6 KiB
Python

import subprocess
from argparse import Namespace, ArgumentParser
from ryujinx_mako._const import NAME, GH_BOT_SUFFIX, GH_EMAIL_TEMPLATE
from ryujinx_mako.commands._subcommand import GithubSubcommand
class SetupGit(GithubSubcommand):
@staticmethod
def name() -> str:
return "setup-git"
@staticmethod
def description() -> str:
return f"Set git identity to {NAME}"
def __init__(self, parser: ArgumentParser):
parser.add_argument(
"-l",
"--local",
action="store_true",
help="Set git identity only for the current repository.",
)
super().__init__(parser)
def run(self, args: Namespace):
base_command = ["git", "config"]
gh_username = f"{NAME}{GH_BOT_SUFFIX}"
self.logger.debug(f"Getting GitHub user for: {gh_username}")
user = self.github.get_user(gh_username)
email = GH_EMAIL_TEMPLATE.format(user_id=user.id, username=user.name)
if args.local:
self.logger.debug("Setting git identity for local repo...")
else:
self.logger.debug("Setting git identity globally...")
base_command.append("--global")
config = {"user.name": user.name, "user.email": email}
for option, value in config.items():
self.logger.info(f"Setting git {option} to: {value}")
command = base_command.copy()
command.extend([option, value])
process = subprocess.run(
command, stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
process.check_returncode()
self.logger.info("Success!")