diff --git a/CHANGELOG.md b/CHANGELOG.md index 361200b..b369c51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Minor + +- Integrated Giscus comments into build pages for discussion threads per build configuration + ### Patch - Made build hash label clickable in BuildProgress component to navigate to build detail page diff --git a/components/BuildProgress.tsx b/components/BuildProgress.tsx index 2033854..7b60da4 100644 --- a/components/BuildProgress.tsx +++ b/components/BuildProgress.tsx @@ -7,7 +7,7 @@ import { getArtifactFilenameBase } from "@/convex/lib/filename" import modulesData from "@/convex/modules.json" import { getImplicitDependencies, humanizeStatus } from "@/lib/utils" import registryData from "@/public/registry.json" -import { AlertCircle, CheckCircle, Copy, Loader2, Share2, X, XCircle } from "lucide-react" +import { CheckCircle, Copy, Loader2, Share2, X, XCircle } from "lucide-react" import { useState } from "react" import { toast } from "sonner" import { navigate } from "vike/client/router" @@ -139,60 +139,6 @@ export function BuildProgress({ build, isAdmin = false, onRetry, showActions = t .join(" ") } - // Generate GitHub discussion URL with prefilled body - const generateDiscussionUrl = (): string => { - const flags = computeFlagsFromConfig(build.config) - const plugins = build.config.pluginsEnabled?.join(", ") || "(none)" - const timestamp = new Date(build.startedAt).toISOString() - const githubRunLink = githubActionUrl ? `[View run](${githubActionUrl})` : "(not available)" - const buildPageUrl = `${window.location.origin}/builds/${build.buildHash}` - - // Format plugins as +plugin@version - const formattedPlugins = - build.config.pluginsEnabled - ?.map(plugin => { - // Plugin might be "slug@version" or just "slug" - return plugin.includes("@") ? `+${plugin}` : `+${plugin}` - }) - .join(" ") || "" - - const bracketContent = [ - build.config.target, - `v${build.config.version}`, - ...(formattedPlugins ? [formattedPlugins] : []), - ].join(" ") - - const discussionTitle = `Build ${build.status === "failure" ? "Failed" : "Issue"}: ${targetLabel} [${bracketContent}]` - - const discussionBody = `## Build ${build.status === "failure" ? "Failed" : "Information"} - -**Build Hash**: \`${build.buildHash}\` -**Target Board**: ${build.config.target} -**Firmware Version**: ${build.config.version} -**Build Flags**: ${flags || "(none)"} -**Plugins**: ${plugins} -**Build Timestamp**: ${timestamp} - -**Build Page**: [View build page](${buildPageUrl}) -**GitHub Run**: ${githubRunLink} - -## Additional Information -(Please add any additional details about the issue here)` - - const baseUrl = "https://github.com/MeshEnvy/mesh-forge/discussions/new" - const params = new URLSearchParams({ - category: "q-a", - title: discussionTitle, - body: discussionBody, - }) - - return `${baseUrl}?${params.toString()}` - } - - const handleReportIssue = () => { - window.open(generateDiscussionUrl(), "_blank", "noopener,noreferrer") - } - const handleRetry = async () => { if (!build?._id || !onRetry) return try { @@ -311,10 +257,6 @@ export function BuildProgress({ build, isAdmin = false, onRetry, showActions = t {showActions && (
-