From da7538225889b039ada75aafdfd2c2dfeb0c7f9e Mon Sep 17 00:00:00 2001 From: Aryana Date: Mon, 24 Feb 2025 20:23:57 -0500 Subject: [PATCH 1/9] github commits --- .env | 5 +- ...one.Identifier => Google__G__logo.svg.png} | 0 .../Google__G__logo.svg.png:Zone.Identifier | 4 - assets/docs.png:Zone.Identifier | 0 assets/github.png | Bin 0 -> 42433 bytes assets/icon.png:Zone.Identifier | 0 assets/pubmed.png:Zone.Identifier | 0 assets/scholar.png:Zone.Identifier | 0 assets/wiki.png:Zone.Identifier | 0 package.json | 5 +- src/connections/github/connection.tsx | 112 ++++++++++++++++++ src/connections/types.ts:Zone.Identifier | 0 src/content.tsx | 10 +- src/content.tsx:Zone.Identifier | 0 src/driver.tsx | 3 +- src/driver.tsx:Zone.Identifier | 0 src/popup.tsx:Zone.Identifier | 0 17 files changed, 126 insertions(+), 13 deletions(-) rename assets/{amazon.jpg:Zone.Identifier => Google__G__logo.svg.png} (100%) delete mode 100644 assets/Google__G__logo.svg.png:Zone.Identifier delete mode 100644 assets/docs.png:Zone.Identifier create mode 100644 assets/github.png delete mode 100644 assets/icon.png:Zone.Identifier delete mode 100644 assets/pubmed.png:Zone.Identifier delete mode 100644 assets/scholar.png:Zone.Identifier delete mode 100644 assets/wiki.png:Zone.Identifier create mode 100644 src/connections/github/connection.tsx delete mode 100644 src/connections/types.ts:Zone.Identifier delete mode 100644 src/content.tsx:Zone.Identifier delete mode 100644 src/driver.tsx:Zone.Identifier delete mode 100644 src/popup.tsx:Zone.Identifier diff --git a/.env b/.env index 389d110..f603177 100644 --- a/.env +++ b/.env @@ -5,4 +5,7 @@ PLASMO_PUBLIC_FRONTEND=https://mantisdev.csail.mit.edu PLASMO_PUBLIC_SDK=http://localhost:5111 -PLASMO_PUBLIC_GOOGLE_API_KEY=AIzaSyBARjISGhJb6W6njSXUv79hAevE7fQ0RuY \ No newline at end of file +PLASMO_PUBLIC_GOOGLE_API_KEY=AIzaSyBARjISGhJb6W6njSXUv79hAevE7fQ0RuY +PLASMO_PUBLIC_GITHUB_CLIENT_ID = Ov23liGB9FtN8SYdFKtl +PLASMO_PUBLIC_GITHUB_CLIENT_SECRET = cee47ada03291eccdcbbef36c3a7eac532e9b05d +PLASMO_PUBLIC_GITHUB_REDIRECT_URI = http://localhost:3000/oauth/callback \ No newline at end of file diff --git a/assets/amazon.jpg:Zone.Identifier b/assets/Google__G__logo.svg.png similarity index 100% rename from assets/amazon.jpg:Zone.Identifier rename to assets/Google__G__logo.svg.png diff --git a/assets/Google__G__logo.svg.png:Zone.Identifier b/assets/Google__G__logo.svg.png:Zone.Identifier deleted file mode 100644 index 35f9396..0000000 --- a/assets/Google__G__logo.svg.png:Zone.Identifier +++ /dev/null @@ -1,4 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -ReferrerUrl=https://cloudconvert.com/ -HostUrl=https://us-east.storage.cloudconvert.com/tasks/de0f30b5-88ec-410a-9b5a-63e90d7d5c4c/Google__G__logo.svg.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=cloudconvert-production%2F20250206%2Fva%2Fs3%2Faws4_request&X-Amz-Date=20250206T225233Z&X-Amz-Expires=86400&X-Amz-Signature=2258f165438237a517eaea3c955ccc96ef66986e11159d268995521ca3040f8b&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%22Google__G__logo.svg.png%22&response-content-type=image%2Fpng&x-id=GetObject diff --git a/assets/docs.png:Zone.Identifier b/assets/docs.png:Zone.Identifier deleted file mode 100644 index e69de29..0000000 diff --git a/assets/github.png b/assets/github.png new file mode 100644 index 0000000000000000000000000000000000000000..5deffa27aacc8aeabe1a4f9f5e6dba7e2d809004 GIT binary patch literal 42433 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 { + return url.includes("github.com/") && url.includes("/"); +}; + +const createSpace = async (injectUI: injectUIType, setProgress: setProgressType) => { + setProgress(GenerationProgress.GATHERING_DATA); + + const url = new URL(window.location.href); + const pathParts = url.pathname.split("/").filter(Boolean); // Removes empty strings + + // Extract the username and repository name + const username = pathParts[0] || null; + const repo = pathParts[1] ? `${username}/${pathParts[1]}` : null; + + if (!repo) { + throw new Error("Repository name is required."); + } + + const commitsUrl = `https://api.github.com/repos/${repo}/commits`; + + const searchResults = []; + + for (let page = 1; page <= 10; page++) { + const response = await fetch(`${commitsUrl}?page=${page}&per_page=100`); + if (!response.ok) { + throw new Error(`Failed to fetch commits: ${await response.text()}`); + } + + const data = await response.json(); + + for (const commit of data) { + //const diffUrl = commit.html_url; + const commitSha = commit.sha; + const diffUrl = `https://github.com/${repo}/commit/${commitSha}.diff`; + const diffResponse = await fetch(diffUrl); + + const diffText = diffResponse.ok ? await diffResponse.text() : "Diff unavailable"; + + searchResults.push({ + message: commit.commit.message, + author: commit.commit.author.name, + date: commit.commit.author.date, + link: commit.html_url, + diff: diffText + }); + } + } + + setProgress(GenerationProgress.CREATING_SPACE); + + const spaceData = await reqSpaceCreation(searchResults, { + "repo_name": "title", + "message": "semantic", + "author": "categoric", + "date": "date", + "link": "links", + "diff": "semantic" + }, repo); + + setProgress(GenerationProgress.INJECTING_UI); + + const spaceId = spaceData.space_id; + + const createdWidget = await injectUI(spaceId); + + setProgress(GenerationProgress.COMPLETED); + + return { spaceId, createdWidget }; +}; + +const injectUI = async (space_id: string) => { + await registerAuthCookies(); + + const scale = 0.75; + + // Create the iframe, hidden by default + const iframeScalerParent = document.createElement("div"); + iframeScalerParent.style.width = "100%"; + iframeScalerParent.style.height = "80vh"; + iframeScalerParent.style.border = "none"; + + const iframe = document.createElement("iframe"); + iframe.src = `${process.env.PLASMO_PUBLIC_FRONTEND}/space/${space_id}`; + iframe.style.border = "none"; + iframe.style.transform = `scale(${scale})`; + iframe.style.transformOrigin = "top left"; + iframe.style.width = (100 / scale).toString() + "%"; + iframe.style.height = (80 / scale).toString() + "vh"; + iframe.style.overflow = "hidden"; + iframeScalerParent.appendChild(iframe); + + document.querySelector("#docs-editor-container").prepend (iframeScalerParent); + + return iframeScalerParent; +} + +export const GitHubConnection: MantisConnection = { + name: "GitHub Commits", + description: "Builds spaces based on GitHub repository commits, including messages, authors, dates, commit links, and diffs.", + icon: githubIcon, + trigger: trigger, + createSpace: createSpace, + injectUI: injectUI +}; diff --git a/src/connections/types.ts:Zone.Identifier b/src/connections/types.ts:Zone.Identifier deleted file mode 100644 index e69de29..0000000 diff --git a/src/content.tsx b/src/content.tsx index 8c731b0..cf792a2 100644 --- a/src/content.tsx +++ b/src/content.tsx @@ -135,7 +135,7 @@ const ConnectionDialog = ({ activeConnections, close }: { activeConnections: Man className="h-8" />
-

{activeConnection.name}

+

{activeConnection.name}

{activeConnection.description}

@@ -247,7 +247,7 @@ const ConnectionDialog = ({ activeConnections, close }: { activeConnections: Man
- + {connectionIdx + 1}/{activeConnections.length}
@@ -263,17 +263,17 @@ const ConnectionDialog = ({ activeConnections, close }: { activeConnections: Man

-

Space Name

+

Space Name

setDataName(e.target.value)} - className="w-full p-2 bg-gray-100 rounded" + className="text-black w-full p-2 bg-gray-100 rounded" /> {noteText && ( <>
-

{noteText}

+

{noteText}

)}