Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/npm_and_yarn/npm_and_yarn-7226297266
Browse files Browse the repository at this point in the history
  • Loading branch information
waltergalvao authored Dec 21, 2024
2 parents c642214 + ce7a4ba commit 974045c
Show file tree
Hide file tree
Showing 201 changed files with 5,735 additions and 1,446 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/migrate-production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Migrate Production

on:
workflow_dispatch:

jobs:
migrate:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Install dependencies
run: npm install

- name: Apply all pending migrations to the database
working-directory: apps/api
run: npm run prisma:migrate:production
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
·
<a href="https://docs.sweetr.dev/">Docs</a>
·
<a href="https://github.com/sweetr-dev/sweetr.dev/discussions">Community</a>
<a href="https://sweetr.featurebase.app/">Feedback</a>
</p>

<p align="center">
Expand Down
5 changes: 4 additions & 1 deletion apps/api/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,7 @@ GITHUB_CLIENT_ID=
GITHUB_OAUTH_REDIRECT_PATH=/github/callback
GITHUB_APP_ID=
GITHUB_APP_HANDLE=
GITHUB_APP_PRIVATE_KEY=
GITHUB_APP_PRIVATE_KEY=

# NGROK
NGROK_DOMAIN=weekly-flying-primate.ngrok-free.app
6 changes: 5 additions & 1 deletion apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
"license": "ISC",
"dependencies": {
"@bull-board/express": "^5.14.1",
"@date-fns/tz": "^1.2.0",
"@date-fns/utc": "^2.1.0",
"@envelop/generic-auth": "^7.0.0",
"@graphql-tools/load-files": "^7.0.0",
"@graphql-tools/merge": "^9.0.0",
Expand All @@ -41,7 +43,7 @@
"@yarnpkg/lockfile": "^1.1.0",
"basic-auth": "^2.0.1",
"bullmq": "^5.2.0",
"date-fns": "^3.3.1",
"date-fns": "^4.0.0",
"dotenv": "^16.3.1",
"envsafe": "^2.0.3",
"express": "^4.20.0",
Expand All @@ -53,6 +55,7 @@
"ioredis": "^5.4.1",
"jsonwebtoken": "^9.0.2",
"markdown-table": "2.0.0",
"micromatch": "^4.0.8",
"octokit": "^3.2.1",
"pino": "^8.16.1",
"radash": "^11.0.0",
Expand All @@ -67,6 +70,7 @@
"@graphql-codegen/typescript": "^4.0.1",
"@graphql-codegen/typescript-resolvers": "^4.0.1",
"@octokit/webhooks-types": "^7.3.1",
"@types/micromatch": "^4.0.9",
"@types/node": "^20.9.0",
"@typescript-eslint/eslint-plugin": "^6.12.0",
"pino-pretty": "^10.2.3",
Expand Down
146 changes: 112 additions & 34 deletions apps/api/prisma/migrations/0_init/migration.sql
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,21 @@ CREATE TYPE "CodeReviewState" AS ENUM ('APPROVED', 'CHANGES_REQUESTED', 'COMMENT
-- CreateEnum
CREATE TYPE "TeamMemberRole" AS ENUM ('DESIGNER', 'ENGINEER', 'LEADER', 'MANAGER', 'PRODUCT', 'QA');

-- CreateEnum
CREATE TYPE "IntegrationApp" AS ENUM ('SLACK');

-- CreateEnum
CREATE TYPE "AutomationType" AS ENUM ('PR_TITLE_CHECK', 'PR_SIZE_LABELER');

-- CreateEnum
CREATE TYPE "DigestType" AS ENUM ('TEAM_METRICS', 'TEAM_WIP');

-- CreateEnum
CREATE TYPE "DayOfTheWeek" AS ENUM ('SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY');

-- CreateEnum
CREATE TYPE "Frequency" AS ENUM ('WEEKLY', 'MONTHLY');

-- CreateTable
CREATE TABLE "GitProfile" (
"id" SERIAL NOT NULL,
Expand All @@ -25,6 +40,8 @@ CREATE TABLE "GitProfile" (
"name" TEXT NOT NULL,
"avatar" TEXT,
"userId" INTEGER,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "GitProfile_pkey" PRIMARY KEY ("id")
);
Expand All @@ -34,6 +51,8 @@ CREATE TABLE "User" (
"id" SERIAL NOT NULL,
"slug" TEXT NOT NULL,
"email" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "User_pkey" PRIMARY KEY ("id")
);
Expand All @@ -46,37 +65,46 @@ CREATE TABLE "Organization" (
"name" TEXT NOT NULL,
"handle" TEXT NOT NULL,
"avatar" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Organization_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Automation" (
"id" SERIAL NOT NULL,
"slug" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT NOT NULL,
"shortDescription" TEXT NOT NULL,
"demoUrl" TEXT NOT NULL,
"color" TEXT NOT NULL,
"icon" TEXT NOT NULL,
"benefits" JSONB NOT NULL,
"available" BOOLEAN NOT NULL DEFAULT true,
"docsUrl" TEXT,

CONSTRAINT "Automation_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Workspace" (
"id" SERIAL NOT NULL,
"gitProvider" "GitProvider" NOT NULL,
"settings" JSONB NOT NULL DEFAULT '{}',
"trialEndAt" TIMESTAMP(3),
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"organizationId" INTEGER,
"gitProfileId" INTEGER,

CONSTRAINT "Workspace_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Subscription" (
"id" SERIAL NOT NULL,
"workspaceId" INTEGER NOT NULL,
"customerId" TEXT NOT NULL,
"subscriptionId" TEXT NOT NULL,
"priceId" TEXT NOT NULL,
"status" TEXT NOT NULL,
"interval" TEXT NOT NULL,
"quantity" INTEGER NOT NULL,
"currentPeriodStart" TIMESTAMP(3) NOT NULL,
"currentPeriodEnd" TIMESTAMP(3) NOT NULL,
"startedAt" TIMESTAMP(3) NOT NULL,
"object" JSONB NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Subscription_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Installation" (
"id" SERIAL NOT NULL,
Expand All @@ -89,6 +117,8 @@ CREATE TABLE "Installation" (
"events" JSONB NOT NULL,
"suspendedAt" TIMESTAMP(3),
"workspaceId" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Installation_pkey" PRIMARY KEY ("id")
);
Expand All @@ -99,6 +129,8 @@ CREATE TABLE "WorkspaceMembership" (
"gitProfileId" INTEGER NOT NULL,
"workspaceId" INTEGER NOT NULL,
"role" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "WorkspaceMembership_pkey" PRIMARY KEY ("id")
);
Expand All @@ -118,6 +150,7 @@ CREATE TABLE "Repository" (
"starCount" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL,
"workspaceId" INTEGER NOT NULL,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Repository_pkey" PRIMARY KEY ("id")
);
Expand All @@ -130,6 +163,7 @@ CREATE TABLE "PullRequest" (
"gitUrl" TEXT NOT NULL,
"title" TEXT NOT NULL,
"number" TEXT NOT NULL,
"files" JSONB NOT NULL DEFAULT '[]',
"commentCount" INTEGER NOT NULL,
"changedFilesCount" INTEGER NOT NULL,
"linesAddedCount" INTEGER NOT NULL,
Expand All @@ -149,6 +183,9 @@ CREATE TABLE "PullRequest" (
-- CreateTable
CREATE TABLE "PullRequestTracking" (
"id" SERIAL NOT NULL,
"changedFilesCount" INTEGER NOT NULL DEFAULT 0,
"linesAddedCount" INTEGER NOT NULL DEFAULT 0,
"linesDeletedCount" INTEGER NOT NULL DEFAULT 0,
"size" "PullRequestSize" NOT NULL,
"firstCommitAt" TIMESTAMP(3),
"firstDraftedAt" TIMESTAMP(3),
Expand All @@ -163,6 +200,8 @@ CREATE TABLE "PullRequestTracking" (
"cycleTime" BIGINT,
"pullRequestId" INTEGER NOT NULL,
"workspaceId" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "PullRequestTracking_pkey" PRIMARY KEY ("id")
);
Expand All @@ -176,6 +215,7 @@ CREATE TABLE "CodeReview" (
"pullRequestId" INTEGER NOT NULL,
"authorId" INTEGER NOT NULL,
"workspaceId" INTEGER NOT NULL,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "CodeReview_pkey" PRIMARY KEY ("id")
);
Expand All @@ -188,8 +228,10 @@ CREATE TABLE "Team" (
"icon" TEXT NOT NULL,
"startColor" TEXT NOT NULL,
"endColor" TEXT NOT NULL,
"workspaceId" INTEGER NOT NULL,
"archivedAt" TIMESTAMP(3),
"workspaceId" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Team_pkey" PRIMARY KEY ("id")
);
Expand All @@ -201,21 +243,54 @@ CREATE TABLE "TeamMember" (
"teamId" INTEGER NOT NULL,
"gitProfileId" INTEGER,
"workspaceId" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "TeamMember_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "AutomationSetting" (
CREATE TABLE "Digest" (
"id" SERIAL NOT NULL,
"type" "DigestType" NOT NULL,
"enabled" BOOLEAN NOT NULL,
"channel" TEXT NOT NULL,
"frequency" "Frequency" NOT NULL,
"dayOfTheWeek" "DayOfTheWeek"[],
"timeOfDay" TEXT NOT NULL,
"timezone" TEXT NOT NULL,
"settings" JSONB NOT NULL,
"automationId" INTEGER NOT NULL,
"workspaceId" INTEGER,
"repositoryId" INTEGER,
"teamId" INTEGER,
"teamId" INTEGER NOT NULL,
"workspaceId" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "AutomationSetting_pkey" PRIMARY KEY ("id")
CONSTRAINT "Digest_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Automation" (
"id" SERIAL NOT NULL,
"type" "AutomationType" NOT NULL,
"enabled" BOOLEAN NOT NULL,
"settings" JSONB NOT NULL,
"workspaceId" INTEGER NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Automation_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Integration" (
"id" SERIAL NOT NULL,
"workspaceId" INTEGER NOT NULL,
"app" "IntegrationApp" NOT NULL,
"data" JSONB NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Integration_pkey" PRIMARY KEY ("id")
);

-- CreateIndex
Expand All @@ -236,15 +311,18 @@ CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
-- CreateIndex
CREATE UNIQUE INDEX "Organization_gitProvider_gitOrganizationId_key" ON "Organization"("gitProvider", "gitOrganizationId");

-- CreateIndex
CREATE UNIQUE INDEX "Automation_slug_key" ON "Automation"("slug");

-- CreateIndex
CREATE UNIQUE INDEX "Workspace_gitProfileId_key" ON "Workspace"("gitProfileId");

-- CreateIndex
CREATE UNIQUE INDEX "Workspace_organizationId_key" ON "Workspace"("organizationId");

-- CreateIndex
CREATE UNIQUE INDEX "Subscription_workspaceId_key" ON "Subscription"("workspaceId");

-- CreateIndex
CREATE UNIQUE INDEX "Subscription_subscriptionId_key" ON "Subscription"("subscriptionId");

-- CreateIndex
CREATE UNIQUE INDEX "Installation_gitInstallationId_key" ON "Installation"("gitInstallationId");

Expand Down Expand Up @@ -309,23 +387,23 @@ CREATE INDEX "TeamMember_gitProfileId_idx" ON "TeamMember"("gitProfileId");
CREATE INDEX "TeamMember_teamId_idx" ON "TeamMember"("teamId");

-- CreateIndex
CREATE INDEX "AutomationSetting_workspaceId_idx" ON "AutomationSetting"("workspaceId");
CREATE INDEX "Digest_workspaceId_idx" ON "Digest"("workspaceId");

-- CreateIndex
CREATE INDEX "AutomationSetting_automationId_idx" ON "AutomationSetting"("automationId");
CREATE INDEX "Digest_teamId_idx" ON "Digest"("teamId");

-- CreateIndex
CREATE INDEX "AutomationSetting_repositoryId_idx" ON "AutomationSetting"("repositoryId");
CREATE UNIQUE INDEX "Digest_teamId_type_key" ON "Digest"("teamId", "type");

-- CreateIndex
CREATE INDEX "AutomationSetting_teamId_idx" ON "AutomationSetting"("teamId");
CREATE INDEX "Automation_workspaceId_type_idx" ON "Automation"("workspaceId", "type");

-- CreateIndex
CREATE UNIQUE INDEX "AutomationSetting_automationId_workspaceId_key" ON "AutomationSetting"("automationId", "workspaceId");
CREATE UNIQUE INDEX "Automation_workspaceId_type_key" ON "Automation"("workspaceId", "type");

-- CreateIndex
CREATE UNIQUE INDEX "AutomationSetting_automationId_repositoryId_key" ON "AutomationSetting"("automationId", "repositoryId");
CREATE INDEX "Integration_workspaceId_app_idx" ON "Integration"("workspaceId", "app");

-- CreateIndex
CREATE UNIQUE INDEX "AutomationSetting_automationId_teamId_key" ON "AutomationSetting"("automationId", "teamId");
CREATE UNIQUE INDEX "Integration_workspaceId_app_key" ON "Integration"("workspaceId", "app");

Loading

0 comments on commit 974045c

Please sign in to comment.