Skip to content

Commit 8c07fc1

Browse files
committed
fix: set git config + misc daemon improvements
1 parent 3a8a2cd commit 8c07fc1

File tree

4 files changed

+38
-44
lines changed

4 files changed

+38
-44
lines changed

src/codegen/cli/commands/start/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def _run_docker_container(repo_config: RepoConfig, port: int, detached: bool) ->
108108
entry_point = f"uv run --frozen uvicorn codegen.runner.servers.local_daemon:app --host {_default_host} --port {port}"
109109
port_args = ["-p", f"{port}:{port}"]
110110
detached_args = ["-d"] if detached else []
111-
run_cmd = ["docker", "run", *detached_args, *port_args, *name_args, *mount_args, *envvars_args, CODEGEN_RUNNER_IMAGE, entry_point]
111+
run_cmd = ["docker", "run", "--rm", *detached_args, *port_args, *name_args, *mount_args, *envvars_args, CODEGEN_RUNNER_IMAGE, entry_point]
112112

113113
rich.print(f"run_cmd: {str.join(' ', run_cmd)}")
114114
subprocess.run(run_cmd, check=True)

src/codegen/git/repo_operator/repo_operator.py

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -145,31 +145,25 @@ def git_cli(self) -> GitCLI:
145145
for level in levels:
146146
with git_cli.config_reader(level) as reader:
147147
if reader.has_option("user", "name") and not username:
148-
username = reader.get("user", "name")
149-
user_level = level
148+
username = username or reader.get("user", "name")
149+
user_level = user_level or level
150150
if reader.has_option("user", "email") and not email:
151-
email = reader.get("user", "email")
152-
email_level = level
153-
if self.bot_commit:
154-
self._set_bot_email(git_cli)
151+
email = email or reader.get("user", "email")
152+
email_level = email_level or level
153+
154+
# We need a username and email to commit, so if they're not set, set them to the bot's
155+
if not username or self.bot_commit:
155156
self._set_bot_username(git_cli)
156-
else:
157-
# we need a username and email to commit, so if they're not set, set them to the bot's
158-
# Case 1: username is not set: set it to the bot's
159-
if not username:
160-
self._set_bot_username(git_cli)
161-
# Case 2: username is set to the bot's at the repo level, but something else is set at the user level: unset it
162-
elif username != CODEGEN_BOT_NAME and user_level != "repository":
163-
self._unset_bot_username(git_cli)
164-
# 3: Caseusername is only set at the repo level: do nothing
165-
else:
166-
pass # no-op to make the logic clearer
167-
# Repeat for email
168-
if not email:
169-
self._set_bot_email(git_cli)
157+
if not email or self.bot_commit:
158+
self._set_bot_email(git_cli)
170159

171-
elif email != CODEGEN_BOT_EMAIL and email_level != "repository":
160+
# If user config is set at a level above the repo level: unset it
161+
if not self.bot_commit:
162+
if username and username != CODEGEN_BOT_NAME and user_level != "repository":
163+
self._unset_bot_username(git_cli)
164+
if email and email != CODEGEN_BOT_EMAIL and email_level != "repository":
172165
self._unset_bot_email(git_cli)
166+
173167
return git_cli
174168

175169
@property

src/codegen/runner/servers/local_daemon.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@
1414
)
1515
from codegen.runner.models.codemod import Codemod, CodemodRunResult
1616
from codegen.runner.sandbox.runner import SandboxRunner
17+
from codegen.shared.logging.get_logger import get_colored_logger
1718

1819
# Configure logging at module level
1920
logging.basicConfig(
2021
level=logging.INFO,
2122
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
2223
force=True,
2324
)
24-
logger = logging.getLogger(__name__)
25+
logger = get_colored_logger(__name__)
2526

2627
server_info: ServerInfo
2728
runner: SandboxRunner
@@ -43,7 +44,7 @@ async def lifespan(server: FastAPI):
4344
runner.op.git_cli.git.config("user.name", CODEGEN_BOT_NAME)
4445

4546
# Parse the codebase
46-
logger.info(f"Starting up sandbox fastapi server for repo_name={repo_config.name}")
47+
logger.info(f"Starting up fastapi server for repo_name={repo_config.name}")
4748
server_info.warmup_state = WarmupState.PENDING
4849
await runner.warmup()
4950
server_info.synced_commit = runner.commit.hexsha

src/codegen/shared/logging/get_logger.py

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,31 @@
22

33
import colorlog
44

5-
handler = colorlog.StreamHandler()
6-
handler.setFormatter(
7-
colorlog.ColoredFormatter(
8-
"%(white)s%(asctime)s - %(name)s - %(log_color)s%(levelname)s%(reset)s%(white)s - %(message_log_color)s%(message)s",
9-
log_colors={
10-
"DEBUG": "cyan",
11-
"INFO": "green",
12-
"WARNING": "yellow",
13-
"ERROR": "red",
14-
"CRITICAL": "red,bg_white",
15-
},
16-
secondary_log_colors={
17-
"message": {
5+
6+
def get_colored_logger(name: str) -> logging.Logger:
7+
handler = colorlog.StreamHandler()
8+
handler.setFormatter(
9+
colorlog.ColoredFormatter(
10+
"%(white)s%(asctime)s - %(name)s - %(log_color)s%(levelname)s%(reset)s%(white)s - %(message_log_color)s%(message)s",
11+
log_colors={
1812
"DEBUG": "cyan",
19-
"INFO": "blue",
13+
"INFO": "green",
2014
"WARNING": "yellow",
2115
"ERROR": "red",
2216
"CRITICAL": "red,bg_white",
23-
}
24-
},
17+
},
18+
secondary_log_colors={
19+
"message": {
20+
"DEBUG": "cyan",
21+
"INFO": "blue",
22+
"WARNING": "yellow",
23+
"ERROR": "red",
24+
"CRITICAL": "red,bg_white",
25+
}
26+
},
27+
)
2528
)
26-
)
27-
2829

29-
def get_logger(name: str, level: int = logging.INFO) -> logging.Logger:
3030
logger = logging.getLogger(name)
3131
logger.addHandler(handler)
32-
logger.setLevel(level)
3332
return logger

0 commit comments

Comments
 (0)