)}
- {!isLoading && !isAllRepos && allRepoCoverageData.length > 0 && (
+ {!isAllRepos && (
+
+ {currentRepoName}
+
+
[] {
);
}
+ const totalLines = 1000;
+ const linesCovered = Math.round((statementCoverage / 100) * totalLines);
+ const totalFunctions = 100;
+ const functionsCovered = Math.round((functionCoverage / 100) * totalFunctions);
+ const totalBranches = 200;
+ const branchesCovered = Math.round((branchCoverage / 100) * totalBranches);
+
data.push({
id: i + 1,
owner_id: 1,
@@ -46,6 +53,12 @@ export function generateDummyData(): Tables<"repo_coverage">[] {
line_coverage: Math.round(statementCoverage * 100) / 100,
function_coverage: Math.round(functionCoverage * 100) / 100,
branch_coverage: Math.round(branchCoverage * 100) / 100,
+ lines_covered: linesCovered,
+ lines_total: totalLines,
+ functions_covered: functionsCovered,
+ functions_total: totalFunctions,
+ branches_covered: branchesCovered,
+ branches_total: totalBranches,
language: "TypeScript",
created_at: date.toISOString(),
created_by: "demo-system",
diff --git a/app/dashboard/prs/page.tsx b/app/dashboard/prs/page.tsx
index 38b2c692..274549b1 100644
--- a/app/dashboard/prs/page.tsx
+++ b/app/dashboard/prs/page.tsx
@@ -171,6 +171,7 @@ export default function PRsPage() {
};
fetchPRData();
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- fetchRepoPRs excluded to prevent infinite re-renders
}, [currentOwnerName, currentRepoName, currentInstallationId, organizations]);
const handleReloadRepo = async (repoName: string) => {
diff --git a/app/dashboard/usage/page.tsx b/app/dashboard/usage/page.tsx
index b0eb360c..a046a422 100644
--- a/app/dashboard/usage/page.tsx
+++ b/app/dashboard/usage/page.tsx
@@ -247,6 +247,7 @@ export default function UsagePage() {
};
fetchAllReposStats();
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- fetchRepoStats excluded to prevent infinite re-renders
}, [
currentStripeCustomerId,
currentOwnerName,
diff --git a/jest.setup.ts b/jest.setup.ts
index bec1c326..8d2ab581 100644
--- a/jest.setup.ts
+++ b/jest.setup.ts
@@ -13,3 +13,13 @@ global.fetch = require("node-fetch");
// Import jest-dom AFTER environment setup because it extends Jest's expect global
// which is only available in setupFilesAfterEnv, not setupFiles
import "@testing-library/jest-dom";
+
+// Suppress console output during tests to keep test output clean
+global.console = {
+ ...console,
+ log: jest.fn(),
+ error: jest.fn(),
+ warn: jest.fn(),
+ info: jest.fn(),
+ debug: jest.fn(),
+};
diff --git a/package-lock.json b/package-lock.json
index a1ecd68e..058ebc00 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -80,8 +80,9 @@
"jest-environment-jsdom": "^29.7.0",
"otplib": "^12.0.1",
"postcss": "^8.4.39",
+ "prettier": "^3.7.4",
"storybook": "^10.0.7",
- "supabase": "^2.34.3",
+ "supabase": "^2.72.4",
"tailwindcss": "^3.4.15",
"ts-jest": "^29.1.2",
"ts-node": "^10.9.2",
@@ -8612,26 +8613,26 @@
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A=="
},
"node_modules/bin-links": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz",
- "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-6.0.0.tgz",
+ "integrity": "sha512-X4CiKlcV2GjnCMwnKAfbVWpHa++65th9TuzAEYtZoATiOE2DQKhSp4CJlyLoTqdhBKlXjpXjCTYPNNFS33Fi6w==",
"dev": true,
"license": "ISC",
"dependencies": {
- "cmd-shim": "^7.0.0",
- "npm-normalize-package-bin": "^4.0.0",
- "proc-log": "^5.0.0",
- "read-cmd-shim": "^5.0.0",
- "write-file-atomic": "^6.0.0"
+ "cmd-shim": "^8.0.0",
+ "npm-normalize-package-bin": "^5.0.0",
+ "proc-log": "^6.0.0",
+ "read-cmd-shim": "^6.0.0",
+ "write-file-atomic": "^7.0.0"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/bin-links/node_modules/write-file-atomic": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz",
- "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.0.tgz",
+ "integrity": "sha512-YnlPC6JqnZl6aO4uRc+dx5PHguiR9S6WeoLtpxNT9wIG+BDya7ZNE1q7KOjVgaA73hKhKLpVPgJ5QA9THQ5BRg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -8639,7 +8640,7 @@
"signal-exit": "^4.0.1"
},
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/binary-extensions": {
@@ -9118,13 +9119,13 @@
}
},
"node_modules/cmd-shim": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz",
- "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-8.0.0.tgz",
+ "integrity": "sha512-Jk/BK6NCapZ58BKUxlSI+ouKRbjH1NLZCgJkYoab+vEHUY3f6OzpNBN9u7HFSv9J6TRDGs4PLOHezoKGaFRSCA==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/co": {
@@ -15134,9 +15135,9 @@
}
},
"node_modules/minizlib": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
- "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -15146,22 +15147,6 @@
"node": ">= 18"
}
},
- "node_modules/mkdirp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
- "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "mkdirp": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/module-alias": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz",
@@ -15458,13 +15443,13 @@
}
},
"node_modules/npm-normalize-package-bin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz",
- "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz",
+ "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/npm-run-path": {
@@ -16369,9 +16354,9 @@
}
},
"node_modules/prettier": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
- "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz",
+ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==",
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
@@ -16398,13 +16383,13 @@
}
},
"node_modules/proc-log": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz",
- "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/progress": {
@@ -16683,13 +16668,13 @@
}
},
"node_modules/read-cmd-shim": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz",
- "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-6.0.0.tgz",
+ "integrity": "sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A==",
"dev": true,
"license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^20.17.0 || >=22.9.0"
}
},
"node_modules/readdirp": {
@@ -18050,17 +18035,17 @@
}
},
"node_modules/supabase": {
- "version": "2.34.3",
- "resolved": "https://registry.npmjs.org/supabase/-/supabase-2.34.3.tgz",
- "integrity": "sha512-nMO7MFkw3ze/ScRt8S7AssNuBDbFeEsu2MTF2hol5T8HoAz5WgoLhhwCL5NUh8G0Jigpg88QIaDEPhHdNvv9TQ==",
+ "version": "2.72.4",
+ "resolved": "https://registry.npmjs.org/supabase/-/supabase-2.72.4.tgz",
+ "integrity": "sha512-7jbpr9svviXihYhUqBK7k7U3aRo4x8OVSkzxrl+cpH4svDS5+Rl605DW9ijYFeRuNQZEvBkRaJQ93bGORWNFqQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "bin-links": "^5.0.0",
+ "bin-links": "^6.0.0",
"https-proxy-agent": "^7.0.2",
"node-fetch": "^3.3.2",
- "tar": "7.4.3"
+ "tar": "7.5.2"
},
"bin": {
"supabase": "bin/supabase"
@@ -18206,17 +18191,16 @@
}
},
"node_modules/tar": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
- "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
+ "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/fs-minipass": "^4.0.0",
"chownr": "^3.0.0",
"minipass": "^7.1.2",
- "minizlib": "^3.0.1",
- "mkdirp": "^3.0.1",
+ "minizlib": "^3.1.0",
"yallist": "^5.0.0"
},
"engines": {
diff --git a/package.json b/package.json
index 08dd5877..1c2c3c3d 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,7 @@
"build": "next build",
"start": "next start",
"lint": "eslint .",
- "types:generate": "supabase gen types typescript --project-id dkrxtcbaqzrodvsagwwn > types/supabase.ts",
+ "types:generate": "supabase gen types typescript --project-id dkrxtcbaqzrodvsagwwn > types/supabase.ts && prettier --write types/supabase.ts",
"test": "jest",
"test:watch": "jest --watch",
"storybook": "storybook dev -p 6006",
@@ -92,8 +92,9 @@
"jest-environment-jsdom": "^29.7.0",
"otplib": "^12.0.1",
"postcss": "^8.4.39",
+ "prettier": "^3.7.4",
"storybook": "^10.0.7",
- "supabase": "^2.34.3",
+ "supabase": "^2.72.4",
"tailwindcss": "^3.4.15",
"ts-jest": "^29.1.2",
"ts-node": "^10.9.2",
diff --git a/types/supabase.ts b/types/supabase.ts
index 7a91e8d8..bf630bfd 100644
--- a/types/supabase.ts
+++ b/types/supabase.ts
@@ -4,1043 +4,1124 @@ export type Json =
| boolean
| null
| { [key: string]: Json | undefined }
- | Json[]
+ | Json[];
export type Database = {
// Allows to automatically instantiate createClient with right options
// instead of createClient(URL, KEY)
__InternalSupabase: {
- PostgrestVersion: "13.0.5"
- }
+ PostgrestVersion: "13.0.5";
+ };
public: {
Tables: {
check_suites: {
Row: {
- check_suite_id: number
- created_at: string | null
- }
+ check_suite_id: number;
+ created_at: string | null;
+ };
Insert: {
- check_suite_id: number
- created_at?: string | null
- }
+ check_suite_id: number;
+ created_at?: string | null;
+ };
Update: {
- check_suite_id?: number
- created_at?: string | null
- }
- Relationships: []
- }
+ check_suite_id?: number;
+ created_at?: string | null;
+ };
+ Relationships: [];
+ };
circleci_tokens: {
Row: {
- created_at: string
- created_by: string
- id: string
- owner_id: number
- token: string
- updated_at: string
- updated_by: string
- }
+ created_at: string;
+ created_by: string;
+ id: string;
+ owner_id: number;
+ token: string;
+ updated_at: string;
+ updated_by: string;
+ };
Insert: {
- created_at?: string
- created_by: string
- id?: string
- owner_id: number
- token: string
- updated_at?: string
- updated_by: string
- }
+ created_at?: string;
+ created_by: string;
+ id?: string;
+ owner_id: number;
+ token: string;
+ updated_at?: string;
+ updated_by: string;
+ };
Update: {
- created_at?: string
- created_by?: string
- id?: string
- owner_id?: number
- token?: string
- updated_at?: string
- updated_by?: string
- }
- Relationships: []
- }
+ created_at?: string;
+ created_by?: string;
+ id?: string;
+ owner_id?: number;
+ token?: string;
+ updated_at?: string;
+ updated_by?: string;
+ };
+ Relationships: [];
+ };
+ codecov_tokens: {
+ Row: {
+ created_at: string;
+ created_by: string;
+ id: string;
+ owner_id: number;
+ token: string;
+ updated_at: string;
+ updated_by: string;
+ };
+ Insert: {
+ created_at?: string;
+ created_by: string;
+ id?: string;
+ owner_id: number;
+ token: string;
+ updated_at?: string;
+ updated_by: string;
+ };
+ Update: {
+ created_at?: string;
+ created_by?: string;
+ id?: string;
+ owner_id?: number;
+ token?: string;
+ updated_at?: string;
+ updated_by?: string;
+ };
+ Relationships: [
+ {
+ foreignKeyName: "codecov_tokens_owner_id_fkey";
+ columns: ["owner_id"];
+ isOneToOne: true;
+ referencedRelation: "owners";
+ referencedColumns: ["owner_id"];
+ },
+ ];
+ };
contacts: {
Row: {
- additional_info: string | null
- company_url: string
- created_at: string | null
- current_coverage: string
- current_coverage_other: string | null
- email: string
- first_name: string
- id: number
- job_description: string
- job_title: string
- last_name: string
- minimum_coverage: string
- minimum_coverage_other: string | null
- target_coverage: string
- target_coverage_other: string | null
- team_size: string
- team_size_other: string | null
- testing_challenges: string | null
- updated_at: string | null
- user_id: number | null
- user_name: string | null
- }
+ additional_info: string | null;
+ company_url: string;
+ created_at: string | null;
+ current_coverage: string;
+ current_coverage_other: string | null;
+ email: string;
+ first_name: string;
+ id: number;
+ job_description: string;
+ job_title: string;
+ last_name: string;
+ minimum_coverage: string;
+ minimum_coverage_other: string | null;
+ target_coverage: string;
+ target_coverage_other: string | null;
+ team_size: string;
+ team_size_other: string | null;
+ testing_challenges: string | null;
+ updated_at: string | null;
+ user_id: number | null;
+ user_name: string | null;
+ };
Insert: {
- additional_info?: string | null
- company_url: string
- created_at?: string | null
- current_coverage: string
- current_coverage_other?: string | null
- email: string
- first_name: string
- id?: number
- job_description: string
- job_title: string
- last_name: string
- minimum_coverage: string
- minimum_coverage_other?: string | null
- target_coverage: string
- target_coverage_other?: string | null
- team_size: string
- team_size_other?: string | null
- testing_challenges?: string | null
- updated_at?: string | null
- user_id?: number | null
- user_name?: string | null
- }
+ additional_info?: string | null;
+ company_url: string;
+ created_at?: string | null;
+ current_coverage: string;
+ current_coverage_other?: string | null;
+ email: string;
+ first_name: string;
+ id?: number;
+ job_description: string;
+ job_title: string;
+ last_name: string;
+ minimum_coverage: string;
+ minimum_coverage_other?: string | null;
+ target_coverage: string;
+ target_coverage_other?: string | null;
+ team_size: string;
+ team_size_other?: string | null;
+ testing_challenges?: string | null;
+ updated_at?: string | null;
+ user_id?: number | null;
+ user_name?: string | null;
+ };
Update: {
- additional_info?: string | null
- company_url?: string
- created_at?: string | null
- current_coverage?: string
- current_coverage_other?: string | null
- email?: string
- first_name?: string
- id?: number
- job_description?: string
- job_title?: string
- last_name?: string
- minimum_coverage?: string
- minimum_coverage_other?: string | null
- target_coverage?: string
- target_coverage_other?: string | null
- team_size?: string
- team_size_other?: string | null
- testing_challenges?: string | null
- updated_at?: string | null
- user_id?: number | null
- user_name?: string | null
- }
- Relationships: []
- }
+ additional_info?: string | null;
+ company_url?: string;
+ created_at?: string | null;
+ current_coverage?: string;
+ current_coverage_other?: string | null;
+ email?: string;
+ first_name?: string;
+ id?: number;
+ job_description?: string;
+ job_title?: string;
+ last_name?: string;
+ minimum_coverage?: string;
+ minimum_coverage_other?: string | null;
+ target_coverage?: string;
+ target_coverage_other?: string | null;
+ team_size?: string;
+ team_size_other?: string | null;
+ testing_challenges?: string | null;
+ updated_at?: string | null;
+ user_id?: number | null;
+ user_name?: string | null;
+ };
+ Relationships: [];
+ };
coverages: {
Row: {
- branch_coverage: number | null
- branch_name: string
- created_at: string
- created_by: string
- file_size: number | null
- full_path: string
- function_coverage: number | null
- github_issue_url: string | null
- id: number
- is_excluded_from_testing: boolean | null
- language: string | null
- level: string
- line_coverage: number | null
- owner_id: number
- package_name: string | null
- path_coverage: number | null
- repo_id: number
- statement_coverage: number | null
- uncovered_branches: string | null
- uncovered_functions: string | null
- uncovered_lines: string | null
- updated_at: string
- updated_by: string
- }
+ branch_coverage: number | null;
+ branch_name: string;
+ created_at: string;
+ created_by: string;
+ file_size: number | null;
+ full_path: string;
+ function_coverage: number | null;
+ github_issue_url: string | null;
+ id: number;
+ is_excluded_from_testing: boolean | null;
+ language: string | null;
+ level: string;
+ line_coverage: number | null;
+ owner_id: number;
+ package_name: string | null;
+ path_coverage: number | null;
+ repo_id: number;
+ statement_coverage: number | null;
+ uncovered_branches: string | null;
+ uncovered_functions: string | null;
+ uncovered_lines: string | null;
+ updated_at: string;
+ updated_by: string;
+ };
Insert: {
- branch_coverage?: number | null
- branch_name?: string
- created_at?: string
- created_by: string
- file_size?: number | null
- full_path: string
- function_coverage?: number | null
- github_issue_url?: string | null
- id?: number
- is_excluded_from_testing?: boolean | null
- language?: string | null
- level: string
- line_coverage?: number | null
- owner_id: number
- package_name?: string | null
- path_coverage?: number | null
- repo_id: number
- statement_coverage?: number | null
- uncovered_branches?: string | null
- uncovered_functions?: string | null
- uncovered_lines?: string | null
- updated_at?: string
- updated_by: string
- }
+ branch_coverage?: number | null;
+ branch_name?: string;
+ created_at?: string;
+ created_by: string;
+ file_size?: number | null;
+ full_path: string;
+ function_coverage?: number | null;
+ github_issue_url?: string | null;
+ id?: number;
+ is_excluded_from_testing?: boolean | null;
+ language?: string | null;
+ level: string;
+ line_coverage?: number | null;
+ owner_id: number;
+ package_name?: string | null;
+ path_coverage?: number | null;
+ repo_id: number;
+ statement_coverage?: number | null;
+ uncovered_branches?: string | null;
+ uncovered_functions?: string | null;
+ uncovered_lines?: string | null;
+ updated_at?: string;
+ updated_by: string;
+ };
Update: {
- branch_coverage?: number | null
- branch_name?: string
- created_at?: string
- created_by?: string
- file_size?: number | null
- full_path?: string
- function_coverage?: number | null
- github_issue_url?: string | null
- id?: number
- is_excluded_from_testing?: boolean | null
- language?: string | null
- level?: string
- line_coverage?: number | null
- owner_id?: number
- package_name?: string | null
- path_coverage?: number | null
- repo_id?: number
- statement_coverage?: number | null
- uncovered_branches?: string | null
- uncovered_functions?: string | null
- uncovered_lines?: string | null
- updated_at?: string
- updated_by?: string
- }
+ branch_coverage?: number | null;
+ branch_name?: string;
+ created_at?: string;
+ created_by?: string;
+ file_size?: number | null;
+ full_path?: string;
+ function_coverage?: number | null;
+ github_issue_url?: string | null;
+ id?: number;
+ is_excluded_from_testing?: boolean | null;
+ language?: string | null;
+ level?: string;
+ line_coverage?: number | null;
+ owner_id?: number;
+ package_name?: string | null;
+ path_coverage?: number | null;
+ repo_id?: number;
+ statement_coverage?: number | null;
+ uncovered_branches?: string | null;
+ uncovered_functions?: string | null;
+ uncovered_lines?: string | null;
+ updated_at?: string;
+ updated_by?: string;
+ };
Relationships: [
{
- foreignKeyName: "coverages_owner_id_fkey"
- columns: ["owner_id"]
- isOneToOne: false
- referencedRelation: "owners"
- referencedColumns: ["owner_id"]
+ foreignKeyName: "coverages_owner_id_fkey";
+ columns: ["owner_id"];
+ isOneToOne: false;
+ referencedRelation: "owners";
+ referencedColumns: ["owner_id"];
},
- ]
- }
+ ];
+ };
credits: {
Row: {
- amount_usd: number
- created_at: string
- expires_at: string | null
- id: number
- owner_id: number
- stripe_payment_intent_id: string | null
- transaction_type: string
- usage_id: number | null
- }
+ amount_usd: number;
+ created_at: string;
+ expires_at: string | null;
+ id: number;
+ owner_id: number;
+ stripe_payment_intent_id: string | null;
+ transaction_type: string;
+ usage_id: number | null;
+ };
Insert: {
- amount_usd: number
- created_at?: string
- expires_at?: string | null
- id?: number
- owner_id: number
- stripe_payment_intent_id?: string | null
- transaction_type: string
- usage_id?: number | null
- }
+ amount_usd: number;
+ created_at?: string;
+ expires_at?: string | null;
+ id?: number;
+ owner_id: number;
+ stripe_payment_intent_id?: string | null;
+ transaction_type: string;
+ usage_id?: number | null;
+ };
Update: {
- amount_usd?: number
- created_at?: string
- expires_at?: string | null
- id?: number
- owner_id?: number
- stripe_payment_intent_id?: string | null
- transaction_type?: string
- usage_id?: number | null
- }
+ amount_usd?: number;
+ created_at?: string;
+ expires_at?: string | null;
+ id?: number;
+ owner_id?: number;
+ stripe_payment_intent_id?: string | null;
+ transaction_type?: string;
+ usage_id?: number | null;
+ };
Relationships: [
{
- foreignKeyName: "credits_owner_id_fkey"
- columns: ["owner_id"]
- isOneToOne: false
- referencedRelation: "owners"
- referencedColumns: ["owner_id"]
+ foreignKeyName: "credits_owner_id_fkey";
+ columns: ["owner_id"];
+ isOneToOne: false;
+ referencedRelation: "owners";
+ referencedColumns: ["owner_id"];
},
{
- foreignKeyName: "credits_usage_id_fkey"
- columns: ["usage_id"]
- isOneToOne: false
- referencedRelation: "usage"
- referencedColumns: ["id"]
+ foreignKeyName: "credits_usage_id_fkey";
+ columns: ["usage_id"];
+ isOneToOne: false;
+ referencedRelation: "usage";
+ referencedColumns: ["id"];
},
{
- foreignKeyName: "credits_usage_id_fkey"
- columns: ["usage_id"]
- isOneToOne: false
- referencedRelation: "usage_with_issues"
- referencedColumns: ["id"]
+ foreignKeyName: "credits_usage_id_fkey";
+ columns: ["usage_id"];
+ isOneToOne: false;
+ referencedRelation: "usage_with_issues";
+ referencedColumns: ["id"];
},
- ]
- }
+ ];
+ };
installations: {
Row: {
- created_at: string
- created_by: string | null
- installation_id: number
- owner_id: number
- owner_name: string
- owner_type: string
- uninstalled_at: string | null
- uninstalled_by: string | null
- }
+ created_at: string;
+ created_by: string | null;
+ installation_id: number;
+ owner_id: number;
+ owner_name: string;
+ owner_type: string;
+ uninstalled_at: string | null;
+ uninstalled_by: string | null;
+ };
Insert: {
- created_at?: string
- created_by?: string | null
- installation_id: number
- owner_id?: number
- owner_name: string
- owner_type?: string
- uninstalled_at?: string | null
- uninstalled_by?: string | null
- }
+ created_at?: string;
+ created_by?: string | null;
+ installation_id: number;
+ owner_id?: number;
+ owner_name: string;
+ owner_type?: string;
+ uninstalled_at?: string | null;
+ uninstalled_by?: string | null;
+ };
Update: {
- created_at?: string
- created_by?: string | null
- installation_id?: number
- owner_id?: number
- owner_name?: string
- owner_type?: string
- uninstalled_at?: string | null
- uninstalled_by?: string | null
- }
+ created_at?: string;
+ created_by?: string | null;
+ installation_id?: number;
+ owner_id?: number;
+ owner_name?: string;
+ owner_type?: string;
+ uninstalled_at?: string | null;
+ uninstalled_by?: string | null;
+ };
Relationships: [
{
- foreignKeyName: "public_owners_owner_id_fkey"
- columns: ["owner_id"]
- isOneToOne: false
- referencedRelation: "owners"
- referencedColumns: ["owner_id"]
+ foreignKeyName: "public_owners_owner_id_fkey";
+ columns: ["owner_id"];
+ isOneToOne: false;
+ referencedRelation: "owners";
+ referencedColumns: ["owner_id"];
},
- ]
- }
+ ];
+ };
issues: {
Row: {
- created_at: string
- created_by: string | null
- id: number
- installation_id: number
- issue_number: number
- merged: boolean
- owner_id: number
- owner_name: string
- owner_type: string
- repo_id: number
- repo_name: string
- run_id: number | null
- }
+ created_at: string;
+ created_by: string | null;
+ id: number;
+ installation_id: number;
+ issue_number: number;
+ merged: boolean;
+ owner_id: number;
+ owner_name: string;
+ owner_type: string;
+ repo_id: number;
+ repo_name: string;
+ run_id: number | null;
+ };
Insert: {
- created_at?: string
- created_by?: string | null
- id?: number
- installation_id: number
- issue_number?: number
- merged?: boolean
- owner_id?: number
- owner_name?: string
- owner_type?: string
- repo_id?: number
- repo_name?: string
- run_id?: number | null
- }
+ created_at?: string;
+ created_by?: string | null;
+ id?: number;
+ installation_id: number;
+ issue_number?: number;
+ merged?: boolean;
+ owner_id?: number;
+ owner_name?: string;
+ owner_type?: string;
+ repo_id?: number;
+ repo_name?: string;
+ run_id?: number | null;
+ };
Update: {
- created_at?: string
- created_by?: string | null
- id?: number
- installation_id?: number
- issue_number?: number
- merged?: boolean
- owner_id?: number
- owner_name?: string
- owner_type?: string
- repo_id?: number
- repo_name?: string
- run_id?: number | null
- }
+ created_at?: string;
+ created_by?: string | null;
+ id?: number;
+ installation_id?: number;
+ issue_number?: number;
+ merged?: boolean;
+ owner_id?: number;
+ owner_name?: string;
+ owner_type?: string;
+ repo_id?: number;
+ repo_name?: string;
+ run_id?: number | null;
+ };
Relationships: [
{
- foreignKeyName: "public_issues_installation_id_fkey"
- columns: ["installation_id"]
- isOneToOne: false
- referencedRelation: "installations"
- referencedColumns: ["installation_id"]
+ foreignKeyName: "public_issues_installation_id_fkey";
+ columns: ["installation_id"];
+ isOneToOne: false;
+ referencedRelation: "installations";
+ referencedColumns: ["installation_id"];
},
- ]
- }
+ ];
+ };
jira_github_links: {
Row: {
- created_at: string | null
- created_by: number
- github_owner_id: number
- github_owner_name: string
- github_repo_id: number
- github_repo_name: string
- id: number
- jira_project_id: number
- jira_project_name: string
- jira_site_id: string
- jira_site_name: string
- updated_at: string | null
- updated_by: number | null
- }
+ created_at: string | null;
+ created_by: number;
+ github_owner_id: number;
+ github_owner_name: string;
+ github_repo_id: number;
+ github_repo_name: string;
+ id: number;
+ jira_project_id: number;
+ jira_project_name: string;
+ jira_site_id: string;
+ jira_site_name: string;
+ updated_at: string | null;
+ updated_by: number | null;
+ };
Insert: {
- created_at?: string | null
- created_by: number
- github_owner_id: number
- github_owner_name: string
- github_repo_id: number
- github_repo_name: string
- id?: number
- jira_project_id: number
- jira_project_name: string
- jira_site_id: string
- jira_site_name: string
- updated_at?: string | null
- updated_by?: number | null
- }
+ created_at?: string | null;
+ created_by: number;
+ github_owner_id: number;
+ github_owner_name: string;
+ github_repo_id: number;
+ github_repo_name: string;
+ id?: number;
+ jira_project_id: number;
+ jira_project_name: string;
+ jira_site_id: string;
+ jira_site_name: string;
+ updated_at?: string | null;
+ updated_by?: number | null;
+ };
Update: {
- created_at?: string | null
- created_by?: number
- github_owner_id?: number
- github_owner_name?: string
- github_repo_id?: number
- github_repo_name?: string
- id?: number
- jira_project_id?: number
- jira_project_name?: string
- jira_site_id?: string
- jira_site_name?: string
- updated_at?: string | null
- updated_by?: number | null
- }
- Relationships: []
- }
+ created_at?: string | null;
+ created_by?: number;
+ github_owner_id?: number;
+ github_owner_name?: string;
+ github_repo_id?: number;
+ github_repo_name?: string;
+ id?: number;
+ jira_project_id?: number;
+ jira_project_name?: string;
+ jira_site_id?: string;
+ jira_site_name?: string;
+ updated_at?: string | null;
+ updated_by?: number | null;
+ };
+ Relationships: [];
+ };
llm_requests: {
Row: {
- created_at: string
- created_by: string | null
- error_message: string | null
- id: number
- input_content: string
- input_cost_usd: number
- input_length: number
- input_tokens: number
- model_id: string
- output_content: string
- output_cost_usd: number
- output_length: number
- output_tokens: number
- provider: string
- response_time_ms: number | null
- total_cost_usd: number
- updated_at: string
- updated_by: string | null
- usage_id: number | null
- }
+ created_at: string;
+ created_by: string | null;
+ error_message: string | null;
+ id: number;
+ input_content: string;
+ input_cost_usd: number;
+ input_length: number;
+ input_tokens: number;
+ model_id: string;
+ output_content: string;
+ output_cost_usd: number;
+ output_length: number;
+ output_tokens: number;
+ provider: string;
+ response_time_ms: number | null;
+ total_cost_usd: number;
+ updated_at: string;
+ updated_by: string | null;
+ usage_id: number | null;
+ };
Insert: {
- created_at?: string
- created_by?: string | null
- error_message?: string | null
- id?: number
- input_content: string
- input_cost_usd: number
- input_length: number
- input_tokens: number
- model_id: string
- output_content: string
- output_cost_usd: number
- output_length: number
- output_tokens: number
- provider: string
- response_time_ms?: number | null
- total_cost_usd: number
- updated_at?: string
- updated_by?: string | null
- usage_id?: number | null
- }
+ created_at?: string;
+ created_by?: string | null;
+ error_message?: string | null;
+ id?: number;
+ input_content: string;
+ input_cost_usd: number;
+ input_length: number;
+ input_tokens: number;
+ model_id: string;
+ output_content: string;
+ output_cost_usd: number;
+ output_length: number;
+ output_tokens: number;
+ provider: string;
+ response_time_ms?: number | null;
+ total_cost_usd: number;
+ updated_at?: string;
+ updated_by?: string | null;
+ usage_id?: number | null;
+ };
Update: {
- created_at?: string
- created_by?: string | null
- error_message?: string | null
- id?: number
- input_content?: string
- input_cost_usd?: number
- input_length?: number
- input_tokens?: number
- model_id?: string
- output_content?: string
- output_cost_usd?: number
- output_length?: number
- output_tokens?: number
- provider?: string
- response_time_ms?: number | null
- total_cost_usd?: number
- updated_at?: string
- updated_by?: string | null
- usage_id?: number | null
- }
+ created_at?: string;
+ created_by?: string | null;
+ error_message?: string | null;
+ id?: number;
+ input_content?: string;
+ input_cost_usd?: number;
+ input_length?: number;
+ input_tokens?: number;
+ model_id?: string;
+ output_content?: string;
+ output_cost_usd?: number;
+ output_length?: number;
+ output_tokens?: number;
+ provider?: string;
+ response_time_ms?: number | null;
+ total_cost_usd?: number;
+ updated_at?: string;
+ updated_by?: string | null;
+ usage_id?: number | null;
+ };
Relationships: [
{
- foreignKeyName: "llm_requests_usage_id_fkey"
- columns: ["usage_id"]
- isOneToOne: false
- referencedRelation: "usage"
- referencedColumns: ["id"]
+ foreignKeyName: "llm_requests_usage_id_fkey";
+ columns: ["usage_id"];
+ isOneToOne: false;
+ referencedRelation: "usage";
+ referencedColumns: ["id"];
},
{
- foreignKeyName: "llm_requests_usage_id_fkey"
- columns: ["usage_id"]
- isOneToOne: false
- referencedRelation: "usage_with_issues"
- referencedColumns: ["id"]
+ foreignKeyName: "llm_requests_usage_id_fkey";
+ columns: ["usage_id"];
+ isOneToOne: false;
+ referencedRelation: "usage_with_issues";
+ referencedColumns: ["id"];
},
- ]
- }
+ ];
+ };
npm_tokens: {
Row: {
- created_at: string
- created_by: string
- id: string
- owner_id: number
- token: string
- updated_at: string
- updated_by: string
- }
+ created_at: string;
+ created_by: string;
+ id: string;
+ owner_id: number;
+ token: string;
+ updated_at: string;
+ updated_by: string;
+ };
Insert: {
- created_at?: string
- created_by: string
- id?: string
- owner_id: number
- token: string
- updated_at?: string
- updated_by: string
- }
+ created_at?: string;
+ created_by: string;
+ id?: string;
+ owner_id: number;
+ token: string;
+ updated_at?: string;
+ updated_by: string;
+ };
Update: {
- created_at?: string
- created_by?: string
- id?: string
- owner_id?: number
- token?: string
- updated_at?: string
- updated_by?: string
- }
+ created_at?: string;
+ created_by?: string;
+ id?: string;
+ owner_id?: number;
+ token?: string;
+ updated_at?: string;
+ updated_by?: string;
+ };
Relationships: [
{
- foreignKeyName: "npm_tokens_owner_id_fkey"
- columns: ["owner_id"]
- isOneToOne: true
- referencedRelation: "owners"
- referencedColumns: ["owner_id"]
+ foreignKeyName: "npm_tokens_owner_id_fkey";
+ columns: ["owner_id"];
+ isOneToOne: true;
+ referencedRelation: "owners";
+ referencedColumns: ["owner_id"];
},
- ]
- }
+ ];
+ };
oauth_tokens: {
Row: {
- access_token: string
- created_at: string
- created_by: number
- expires_at: string
- id: number
- refresh_token: string | null
- scope: string
- service_name: string
- updated_at: string
- updated_by: number | null
- user_id: number
- }
+ access_token: string;
+ created_at: string;
+ created_by: number;
+ expires_at: string;
+ id: number;
+ refresh_token: string | null;
+ scope: string;
+ service_name: string;
+ updated_at: string;
+ updated_by: number | null;
+ user_id: number;
+ };
Insert: {
- access_token: string
- created_at?: string
- created_by: number
- expires_at: string
- id?: number
- refresh_token?: string | null
- scope: string
- service_name: string
- updated_at?: string
- updated_by?: number | null
- user_id: number
- }
+ access_token: string;
+ created_at?: string;
+ created_by: number;
+ expires_at: string;
+ id?: number;
+ refresh_token?: string | null;
+ scope: string;
+ service_name: string;
+ updated_at?: string;
+ updated_by?: number | null;
+ user_id: number;
+ };
Update: {
- access_token?: string
- created_at?: string
- created_by?: number
- expires_at?: string
- id?: number
- refresh_token?: string | null
- scope?: string
- service_name?: string
- updated_at?: string
- updated_by?: number | null
- user_id?: number
- }
- Relationships: []
- }
+ access_token?: string;
+ created_at?: string;
+ created_by?: number;
+ expires_at?: string;
+ id?: number;
+ refresh_token?: string | null;
+ scope?: string;
+ service_name?: string;
+ updated_at?: string;
+ updated_by?: number | null;
+ user_id?: number;
+ };
+ Relationships: [];
+ };
owners: {
Row: {
- auto_reload_enabled: boolean
- auto_reload_target_usd: number
- auto_reload_threshold_usd: number
- created_at: string
- created_by: string | null
- credit_balance_usd: number
- max_spending_limit_usd: number | null
- org_rules: string
- owner_id: number
- owner_name: string
- owner_type: string
- stripe_customer_id: string
- updated_at: string
- updated_by: string | null
- }
+ auto_reload_enabled: boolean;
+ auto_reload_target_usd: number;
+ auto_reload_threshold_usd: number;
+ created_at: string;
+ created_by: string | null;
+ credit_balance_usd: number;
+ max_spending_limit_usd: number | null;
+ org_rules: string;
+ owner_id: number;
+ owner_name: string;
+ owner_type: string;
+ stripe_customer_id: string;
+ updated_at: string;
+ updated_by: string | null;
+ };
Insert: {
- auto_reload_enabled?: boolean
- auto_reload_target_usd?: number
- auto_reload_threshold_usd?: number
- created_at?: string
- created_by?: string | null
- credit_balance_usd?: number
- max_spending_limit_usd?: number | null
- org_rules?: string
- owner_id: number
- owner_name?: string
- owner_type?: string
- stripe_customer_id: string
- updated_at?: string
- updated_by?: string | null
- }
+ auto_reload_enabled?: boolean;
+ auto_reload_target_usd?: number;
+ auto_reload_threshold_usd?: number;
+ created_at?: string;
+ created_by?: string | null;
+ credit_balance_usd?: number;
+ max_spending_limit_usd?: number | null;
+ org_rules?: string;
+ owner_id: number;
+ owner_name?: string;
+ owner_type?: string;
+ stripe_customer_id: string;
+ updated_at?: string;
+ updated_by?: string | null;
+ };
Update: {
- auto_reload_enabled?: boolean
- auto_reload_target_usd?: number
- auto_reload_threshold_usd?: number
- created_at?: string
- created_by?: string | null
- credit_balance_usd?: number
- max_spending_limit_usd?: number | null
- org_rules?: string
- owner_id?: number
- owner_name?: string
- owner_type?: string
- stripe_customer_id?: string
- updated_at?: string
- updated_by?: string | null
- }
- Relationships: []
- }
+ auto_reload_enabled?: boolean;
+ auto_reload_target_usd?: number;
+ auto_reload_threshold_usd?: number;
+ created_at?: string;
+ created_by?: string | null;
+ credit_balance_usd?: number;
+ max_spending_limit_usd?: number | null;
+ org_rules?: string;
+ owner_id?: number;
+ owner_name?: string;
+ owner_type?: string;
+ stripe_customer_id?: string;
+ updated_at?: string;
+ updated_by?: string | null;
+ };
+ Relationships: [];
+ };
repo_coverage: {
Row: {
- branch_coverage: number
- branch_name: string
- created_at: string
- created_by: string
- function_coverage: number
- id: number
- language: string
- line_coverage: number
- owner_id: number
- owner_name: string
- repo_id: number
- repo_name: string
- statement_coverage: number
- }
+ branch_coverage: number;
+ branch_name: string;
+ branches_covered: number;
+ branches_total: number;
+ created_at: string;
+ created_by: string;
+ function_coverage: number;
+ functions_covered: number;
+ functions_total: number;
+ id: number;
+ language: string;
+ line_coverage: number;
+ lines_covered: number;
+ lines_total: number;
+ owner_id: number;
+ owner_name: string;
+ repo_id: number;
+ repo_name: string;
+ statement_coverage: number;
+ };
Insert: {
- branch_coverage?: number
- branch_name: string
- created_at?: string
- created_by: string
- function_coverage?: number
- id?: number
- language: string
- line_coverage?: number
- owner_id: number
- owner_name: string
- repo_id: number
- repo_name: string
- statement_coverage?: number
- }
+ branch_coverage?: number;
+ branch_name: string;
+ branches_covered?: number;
+ branches_total?: number;
+ created_at?: string;
+ created_by: string;
+ function_coverage?: number;
+ functions_covered?: number;
+ functions_total?: number;
+ id?: number;
+ language: string;
+ line_coverage?: number;
+ lines_covered?: number;
+ lines_total?: number;
+ owner_id: number;
+ owner_name: string;
+ repo_id: number;
+ repo_name: string;
+ statement_coverage?: number;
+ };
Update: {
- branch_coverage?: number
- branch_name?: string
- created_at?: string
- created_by?: string
- function_coverage?: number
- id?: number
- language?: string
- line_coverage?: number
- owner_id?: number
- owner_name?: string
- repo_id?: number
- repo_name?: string
- statement_coverage?: number
- }
- Relationships: []
- }
+ branch_coverage?: number;
+ branch_name?: string;
+ branches_covered?: number;
+ branches_total?: number;
+ created_at?: string;
+ created_by?: string;
+ function_coverage?: number;
+ functions_covered?: number;
+ functions_total?: number;
+ id?: number;
+ language?: string;
+ line_coverage?: number;
+ lines_covered?: number;
+ lines_total?: number;
+ owner_id?: number;
+ owner_name?: string;
+ repo_id?: number;
+ repo_name?: string;
+ statement_coverage?: number;
+ };
+ Relationships: [];
+ };
repositories: {
Row: {
- blank_lines: number
- code_lines: number
- comment_lines: number
- created_at: string
- created_by: string
- file_count: number
- file_paths: string[] | null
- id: number
- local_port: number | null
- owner_id: number
- production_url: string | null
- repo_id: number
- repo_name: string
- repo_rules: string | null
- schedule_day_of_week: string | null
- schedule_execution_count: number
- schedule_frequency: string | null
- schedule_include_weekends: boolean
- schedule_interval_minutes: number
- schedule_minute: number | null
- schedule_time: string | null
- startup_commands: string[] | null
- structured_rules: Json | null
- target_branch: string
- trigger_on_commit: boolean
- trigger_on_merged: boolean
- trigger_on_pr_change: boolean
- trigger_on_review_comment: boolean
- trigger_on_schedule: boolean
- trigger_on_test_failure: boolean
- updated_at: string
- updated_by: string
- use_screenshots: boolean | null
- web_urls: string[] | null
- }
+ blank_lines: number;
+ code_lines: number;
+ comment_lines: number;
+ created_at: string;
+ created_by: string;
+ file_count: number;
+ file_paths: string[] | null;
+ id: number;
+ local_port: number | null;
+ owner_id: number;
+ production_url: string | null;
+ repo_id: number;
+ repo_name: string;
+ repo_rules: string | null;
+ schedule_day_of_week: string | null;
+ schedule_execution_count: number;
+ schedule_frequency: string | null;
+ schedule_include_weekends: boolean;
+ schedule_interval_minutes: number;
+ schedule_minute: number | null;
+ schedule_time: string | null;
+ startup_commands: string[] | null;
+ structured_rules: Json | null;
+ target_branch: string;
+ trigger_on_commit: boolean;
+ trigger_on_merged: boolean;
+ trigger_on_pr_change: boolean;
+ trigger_on_review_comment: boolean;
+ trigger_on_schedule: boolean;
+ trigger_on_test_failure: boolean;
+ updated_at: string;
+ updated_by: string;
+ use_screenshots: boolean | null;
+ web_urls: string[] | null;
+ };
Insert: {
- blank_lines?: number
- code_lines?: number
- comment_lines?: number
- created_at?: string
- created_by: string
- file_count?: number
- file_paths?: string[] | null
- id?: number
- local_port?: number | null
- owner_id: number
- production_url?: string | null
- repo_id: number
- repo_name: string
- repo_rules?: string | null
- schedule_day_of_week?: string | null
- schedule_execution_count?: number
- schedule_frequency?: string | null
- schedule_include_weekends?: boolean
- schedule_interval_minutes?: number
- schedule_minute?: number | null
- schedule_time?: string | null
- startup_commands?: string[] | null
- structured_rules?: Json | null
- target_branch?: string
- trigger_on_commit?: boolean
- trigger_on_merged?: boolean
- trigger_on_pr_change?: boolean
- trigger_on_review_comment?: boolean
- trigger_on_schedule?: boolean
- trigger_on_test_failure?: boolean
- updated_at?: string
- updated_by: string
- use_screenshots?: boolean | null
- web_urls?: string[] | null
- }
+ blank_lines?: number;
+ code_lines?: number;
+ comment_lines?: number;
+ created_at?: string;
+ created_by: string;
+ file_count?: number;
+ file_paths?: string[] | null;
+ id?: number;
+ local_port?: number | null;
+ owner_id: number;
+ production_url?: string | null;
+ repo_id: number;
+ repo_name: string;
+ repo_rules?: string | null;
+ schedule_day_of_week?: string | null;
+ schedule_execution_count?: number;
+ schedule_frequency?: string | null;
+ schedule_include_weekends?: boolean;
+ schedule_interval_minutes?: number;
+ schedule_minute?: number | null;
+ schedule_time?: string | null;
+ startup_commands?: string[] | null;
+ structured_rules?: Json | null;
+ target_branch?: string;
+ trigger_on_commit?: boolean;
+ trigger_on_merged?: boolean;
+ trigger_on_pr_change?: boolean;
+ trigger_on_review_comment?: boolean;
+ trigger_on_schedule?: boolean;
+ trigger_on_test_failure?: boolean;
+ updated_at?: string;
+ updated_by: string;
+ use_screenshots?: boolean | null;
+ web_urls?: string[] | null;
+ };
Update: {
- blank_lines?: number
- code_lines?: number
- comment_lines?: number
- created_at?: string
- created_by?: string
- file_count?: number
- file_paths?: string[] | null
- id?: number
- local_port?: number | null
- owner_id?: number
- production_url?: string | null
- repo_id?: number
- repo_name?: string
- repo_rules?: string | null
- schedule_day_of_week?: string | null
- schedule_execution_count?: number
- schedule_frequency?: string | null
- schedule_include_weekends?: boolean
- schedule_interval_minutes?: number
- schedule_minute?: number | null
- schedule_time?: string | null
- startup_commands?: string[] | null
- structured_rules?: Json | null
- target_branch?: string
- trigger_on_commit?: boolean
- trigger_on_merged?: boolean
- trigger_on_pr_change?: boolean
- trigger_on_review_comment?: boolean
- trigger_on_schedule?: boolean
- trigger_on_test_failure?: boolean
- updated_at?: string
- updated_by?: string
- use_screenshots?: boolean | null
- web_urls?: string[] | null
- }
+ blank_lines?: number;
+ code_lines?: number;
+ comment_lines?: number;
+ created_at?: string;
+ created_by?: string;
+ file_count?: number;
+ file_paths?: string[] | null;
+ id?: number;
+ local_port?: number | null;
+ owner_id?: number;
+ production_url?: string | null;
+ repo_id?: number;
+ repo_name?: string;
+ repo_rules?: string | null;
+ schedule_day_of_week?: string | null;
+ schedule_execution_count?: number;
+ schedule_frequency?: string | null;
+ schedule_include_weekends?: boolean;
+ schedule_interval_minutes?: number;
+ schedule_minute?: number | null;
+ schedule_time?: string | null;
+ startup_commands?: string[] | null;
+ structured_rules?: Json | null;
+ target_branch?: string;
+ trigger_on_commit?: boolean;
+ trigger_on_merged?: boolean;
+ trigger_on_pr_change?: boolean;
+ trigger_on_review_comment?: boolean;
+ trigger_on_schedule?: boolean;
+ trigger_on_test_failure?: boolean;
+ updated_at?: string;
+ updated_by?: string;
+ use_screenshots?: boolean | null;
+ web_urls?: string[] | null;
+ };
Relationships: [
{
- foreignKeyName: "repositories_owner_id_fkey"
- columns: ["owner_id"]
- isOneToOne: false
- referencedRelation: "owners"
- referencedColumns: ["owner_id"]
+ foreignKeyName: "repositories_owner_id_fkey";
+ columns: ["owner_id"];
+ isOneToOne: false;
+ referencedRelation: "owners";
+ referencedColumns: ["owner_id"];
},
- ]
- }
+ ];
+ };
repository_features: {
Row: {
- auto_merge: boolean
- auto_merge_only_test_files: boolean
- created_at: string
- created_by: string
- id: number
- merge_method: string
- owner_id: number
- owner_name: string
- repo_id: number
- repo_name: string
- updated_at: string
- updated_by: string
- }
+ allow_edit_any_file: boolean;
+ auto_merge: boolean;
+ auto_merge_only_test_files: boolean;
+ created_at: string;
+ created_by: string;
+ id: number;
+ merge_method: string;
+ owner_id: number;
+ owner_name: string;
+ repo_id: number;
+ repo_name: string;
+ restrict_edit_to_target_test_file_only: boolean;
+ updated_at: string;
+ updated_by: string;
+ };
Insert: {
- auto_merge?: boolean
- auto_merge_only_test_files?: boolean
- created_at?: string
- created_by: string
- id?: number
- merge_method?: string
- owner_id: number
- owner_name: string
- repo_id: number
- repo_name: string
- updated_at?: string
- updated_by: string
- }
+ allow_edit_any_file?: boolean;
+ auto_merge?: boolean;
+ auto_merge_only_test_files?: boolean;
+ created_at?: string;
+ created_by: string;
+ id?: number;
+ merge_method?: string;
+ owner_id: number;
+ owner_name: string;
+ repo_id: number;
+ repo_name: string;
+ restrict_edit_to_target_test_file_only?: boolean;
+ updated_at?: string;
+ updated_by: string;
+ };
Update: {
- auto_merge?: boolean
- auto_merge_only_test_files?: boolean
- created_at?: string
- created_by?: string
- id?: number
- merge_method?: string
- owner_id?: number
- owner_name?: string
- repo_id?: number
- repo_name?: string
- updated_at?: string
- updated_by?: string
- }
+ allow_edit_any_file?: boolean;
+ auto_merge?: boolean;
+ auto_merge_only_test_files?: boolean;
+ created_at?: string;
+ created_by?: string;
+ id?: number;
+ merge_method?: string;
+ owner_id?: number;
+ owner_name?: string;
+ repo_id?: number;
+ repo_name?: string;
+ restrict_edit_to_target_test_file_only?: boolean;
+ updated_at?: string;
+ updated_by?: string;
+ };
Relationships: [
{
- foreignKeyName: "repository_features_owner_id_repo_id_fkey"
- columns: ["owner_id", "repo_id"]
- isOneToOne: true
- referencedRelation: "repositories"
- referencedColumns: ["owner_id", "repo_id"]
+ foreignKeyName: "repository_features_owner_id_repo_id_fkey";
+ columns: ["owner_id", "repo_id"];
+ isOneToOne: true;
+ referencedRelation: "repositories";
+ referencedColumns: ["owner_id", "repo_id"];
},
- ]
- }
+ ];
+ };
usage: {
Row: {
- created_at: string
- created_by: string | null
- id: number
- installation_id: number
- is_completed: boolean
- is_merged: boolean
- is_test_passed: boolean
- issue_number: number
- lambda_log_group: string | null
- lambda_log_stream: string | null
- lambda_request_id: string | null
- minimized_error_log: string | null
- original_error_log: string | null
- owner_id: number
- owner_name: string
- owner_type: string
- pr_number: number | null
- repo_id: number
- repo_name: string
- retry_workflow_id_hash_pairs: string[] | null
- source: string
- token_input: number | null
- token_output: number | null
- total_seconds: number | null
- trigger: string
- user_id: number
- }
+ created_at: string;
+ created_by: string | null;
+ id: number;
+ installation_id: number;
+ is_completed: boolean;
+ is_merged: boolean;
+ is_test_passed: boolean;
+ issue_number: number;
+ lambda_log_group: string | null;
+ lambda_log_stream: string | null;
+ lambda_request_id: string | null;
+ minimized_error_log: string | null;
+ original_error_log: string | null;
+ owner_id: number;
+ owner_name: string;
+ owner_type: string;
+ pr_number: number | null;
+ repo_id: number;
+ repo_name: string;
+ retry_workflow_id_hash_pairs: string[] | null;
+ source: string;
+ token_input: number | null;
+ token_output: number | null;
+ total_seconds: number | null;
+ trigger: string;
+ user_id: number;
+ };
Insert: {
- created_at?: string
- created_by?: string | null
- id?: number
- installation_id: number
- is_completed?: boolean
- is_merged?: boolean
- is_test_passed?: boolean
- issue_number?: number
- lambda_log_group?: string | null
- lambda_log_stream?: string | null
- lambda_request_id?: string | null
- minimized_error_log?: string | null
- original_error_log?: string | null
- owner_id?: number
- owner_name?: string
- owner_type?: string
- pr_number?: number | null
- repo_id?: number
- repo_name?: string
- retry_workflow_id_hash_pairs?: string[] | null
- source?: string
- token_input?: number | null
- token_output?: number | null
- total_seconds?: number | null
- trigger?: string
- user_id: number
- }
+ created_at?: string;
+ created_by?: string | null;
+ id?: number;
+ installation_id: number;
+ is_completed?: boolean;
+ is_merged?: boolean;
+ is_test_passed?: boolean;
+ issue_number?: number;
+ lambda_log_group?: string | null;
+ lambda_log_stream?: string | null;
+ lambda_request_id?: string | null;
+ minimized_error_log?: string | null;
+ original_error_log?: string | null;
+ owner_id?: number;
+ owner_name?: string;
+ owner_type?: string;
+ pr_number?: number | null;
+ repo_id?: number;
+ repo_name?: string;
+ retry_workflow_id_hash_pairs?: string[] | null;
+ source?: string;
+ token_input?: number | null;
+ token_output?: number | null;
+ total_seconds?: number | null;
+ trigger?: string;
+ user_id: number;
+ };
Update: {
- created_at?: string
- created_by?: string | null
- id?: number
- installation_id?: number
- is_completed?: boolean
- is_merged?: boolean
- is_test_passed?: boolean
- issue_number?: number
- lambda_log_group?: string | null
- lambda_log_stream?: string | null
- lambda_request_id?: string | null
- minimized_error_log?: string | null
- original_error_log?: string | null
- owner_id?: number
- owner_name?: string
- owner_type?: string
- pr_number?: number | null
- repo_id?: number
- repo_name?: string
- retry_workflow_id_hash_pairs?: string[] | null
- source?: string
- token_input?: number | null
- token_output?: number | null
- total_seconds?: number | null
- trigger?: string
- user_id?: number
- }
- Relationships: []
- }
+ created_at?: string;
+ created_by?: string | null;
+ id?: number;
+ installation_id?: number;
+ is_completed?: boolean;
+ is_merged?: boolean;
+ is_test_passed?: boolean;
+ issue_number?: number;
+ lambda_log_group?: string | null;
+ lambda_log_stream?: string | null;
+ lambda_request_id?: string | null;
+ minimized_error_log?: string | null;
+ original_error_log?: string | null;
+ owner_id?: number;
+ owner_name?: string;
+ owner_type?: string;
+ pr_number?: number | null;
+ repo_id?: number;
+ repo_name?: string;
+ retry_workflow_id_hash_pairs?: string[] | null;
+ source?: string;
+ token_input?: number | null;
+ token_output?: number | null;
+ total_seconds?: number | null;
+ trigger?: string;
+ user_id?: number;
+ };
+ Relationships: [];
+ };
users: {
Row: {
- created_at: string
- created_by: string | null
- email: string | null
- id: number
- user_id: number
- user_name: string
- user_rules: string
- }
+ created_at: string;
+ created_by: string | null;
+ email: string | null;
+ id: number;
+ user_id: number;
+ user_name: string;
+ user_rules: string;
+ };
Insert: {
- created_at?: string
- created_by?: string | null
- email?: string | null
- id?: number
- user_id: number
- user_name: string
- user_rules?: string
- }
+ created_at?: string;
+ created_by?: string | null;
+ email?: string | null;
+ id?: number;
+ user_id: number;
+ user_name: string;
+ user_rules?: string;
+ };
Update: {
- created_at?: string
- created_by?: string | null
- email?: string | null
- id?: number
- user_id?: number
- user_name?: string
- user_rules?: string
- }
- Relationships: []
- }
+ created_at?: string;
+ created_by?: string | null;
+ email?: string | null;
+ id?: number;
+ user_id?: number;
+ user_name?: string;
+ user_rules?: string;
+ };
+ Relationships: [];
+ };
webhook_deliveries: {
Row: {
- created_at: string | null
- delivery_id: string
- event_name: string
- id: number
- }
+ created_at: string | null;
+ delivery_id: string;
+ event_name: string;
+ id: number;
+ };
Insert: {
- created_at?: string | null
- delivery_id: string
- event_name: string
- id?: number
- }
+ created_at?: string | null;
+ delivery_id: string;
+ event_name: string;
+ id?: number;
+ };
Update: {
- created_at?: string | null
- delivery_id?: string
- event_name?: string
- id?: number
- }
- Relationships: []
- }
- }
+ created_at?: string | null;
+ delivery_id?: string;
+ event_name?: string;
+ id?: number;
+ };
+ Relationships: [];
+ };
+ };
Views: {
+ total_repo_coverage: {
+ Row: {
+ branch_coverage: number | null;
+ branches_covered: number | null;
+ branches_total: number | null;
+ coverage_date: string | null;
+ function_coverage: number | null;
+ functions_covered: number | null;
+ functions_total: number | null;
+ lines_covered: number | null;
+ lines_total: number | null;
+ owner_id: number | null;
+ statement_coverage: number | null;
+ };
+ Relationships: [];
+ };
usage_with_issues: {
Row: {
- created_at: string | null
- created_by: string | null
- id: number | null
- installation_id: number | null
- is_completed: boolean | null
- issue_number: number | null
- merged: boolean | null
- owner_id: number | null
- owner_name: string | null
- owner_type: string | null
- repo_id: number | null
- repo_name: string | null
- source: string | null
- token_input: number | null
- token_output: number | null
- total_seconds: number | null
- user_id: number | null
- }
- Relationships: []
- }
- }
+ created_at: string | null;
+ created_by: string | null;
+ id: number | null;
+ installation_id: number | null;
+ is_completed: boolean | null;
+ issue_number: number | null;
+ merged: boolean | null;
+ owner_id: number | null;
+ owner_name: string | null;
+ owner_type: string | null;
+ repo_id: number | null;
+ repo_name: string | null;
+ source: string | null;
+ token_input: number | null;
+ token_output: number | null;
+ total_seconds: number | null;
+ user_id: number | null;
+ };
+ Relationships: [];
+ };
+ };
Functions: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
Enums: {
- [_ in never]: never
- }
+ [_ in never]: never;
+ };
CompositeTypes: {
- [_ in never]: never
- }
- }
-}
+ [_ in never]: never;
+ };
+ };
+};
-type DatabaseWithoutInternals = Omit
+type DatabaseWithoutInternals = Omit;
-type DefaultSchema = DatabaseWithoutInternals[Extract]
+type DefaultSchema = DatabaseWithoutInternals[Extract<
+ keyof Database,
+ "public"
+>];
export type Tables<
DefaultSchemaTableNameOrOptions extends
| keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
| { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
: never = never,
> = DefaultSchemaTableNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
- Row: infer R
+ Row: infer R;
}
? R
: never
@@ -1048,98 +1129,98 @@ export type Tables<
DefaultSchema["Views"])
? (DefaultSchema["Tables"] &
DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
- Row: infer R
+ Row: infer R;
}
? R
: never
- : never
+ : never;
export type TablesInsert<
DefaultSchemaTableNameOrOptions extends
| keyof DefaultSchema["Tables"]
| { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never,
> = DefaultSchemaTableNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
- Insert: infer I
+ Insert: infer I;
}
? I
: never
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
- Insert: infer I
+ Insert: infer I;
}
? I
: never
- : never
+ : never;
export type TablesUpdate<
DefaultSchemaTableNameOrOptions extends
| keyof DefaultSchema["Tables"]
| { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never,
> = DefaultSchemaTableNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
- Update: infer U
+ Update: infer U;
}
? U
: never
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
- Update: infer U
+ Update: infer U;
}
? U
: never
- : never
+ : never;
export type Enums<
DefaultSchemaEnumNameOrOptions extends
| keyof DefaultSchema["Enums"]
| { schema: keyof DatabaseWithoutInternals },
EnumName extends DefaultSchemaEnumNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
: never = never,
> = DefaultSchemaEnumNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
- : never
+ : never;
export type CompositeTypes<
PublicCompositeTypeNameOrOptions extends
| keyof DefaultSchema["CompositeTypes"]
| { schema: keyof DatabaseWithoutInternals },
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
: never = never,
> = PublicCompositeTypeNameOrOptions extends {
- schema: keyof DatabaseWithoutInternals
+ schema: keyof DatabaseWithoutInternals;
}
? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
- : never
+ : never;
export const Constants = {
public: {
Enums: {},
},
-} as const
+} as const;