diff --git a/prisma/launcher.schema.prisma b/prisma/launcher.schema.prisma index 5f35426..dd28c3b 100644 --- a/prisma/launcher.schema.prisma +++ b/prisma/launcher.schema.prisma @@ -77,6 +77,9 @@ model ProvisionedDevice { kernel String? distro String? device Json? + agentVersion String? @map("agent_version") + agentUpdatedAt DateTime? @map("agent_updated_at") @db.Timestamptz(3) + agentLastSeenAt DateTime? @map("agent_last_seen_at") @db.Timestamptz(3) installedAt DateTime @default(now()) @map("installed_at") @db.Timestamptz(3) lastProvisionedAt DateTime @default(now()) @map("last_provisioned_at") @db.Timestamptz(3) createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) @@ -85,6 +88,7 @@ model ProvisionedDevice { @@unique([accountEmail, tailscaleHostname]) @@index([accountEmail]) @@index([tailscaleHostname]) + @@index([agentLastSeenAt]) @@map("provisioned_devices") } diff --git a/src/gitea/gitea.service.ts b/src/gitea/gitea.service.ts index 52fe4e3..0191527 100644 --- a/src/gitea/gitea.service.ts +++ b/src/gitea/gitea.service.ts @@ -1,4 +1,5 @@ import { + BadRequestException, BadGatewayException, Injectable, UnauthorizedException, @@ -118,6 +119,10 @@ export class GiteaService { params.set('page', String(page)); if (query.sha) { params.set('sha', query.sha); + const { branches } = await this.listBranches(owner, repo) as { branches: Array<{ name?: string }> }; + if (!branches.some((branch) => branch.name === query.sha)) { + throw new BadRequestException('해당 브랜치가 없습니다.'); + } } if (query.since) { params.set('since', query.since);