+ {/* Owner/Repo — not needed for gists or user repo creation */}
+ {!isGist && (
+ <>
+
+
+
setValues({ ...values, owner: e.target.value })}
+ />
+
The account owner of the repository. Supports template variables.
+
+
+
+ setValues({ ...values, repo: e.target.value })}
+ />
+
+ >
+ )}
+
+ {/* Branch field */}
+ {(isFile || isBranch) && (
+
+
+ setValues({ ...values, branch: e.target.value })}
+ />
+
+ )}
+
+ {/* File path */}
+ {isFile && (
+
+
+ setValues({ ...values, filePath: e.target.value })}
+ />
+
+ )}
+
+ {/* File content + commit message */}
+ {isFile && (isCreate || isUpdate || op === "FILE_CREATE_OR_UPDATE") && (
+ <>
+
+
+ setValues({ ...values, commitMessage: e.target.value })}
+ />
+
+
+
+
+ >
+ )}
+
+ {/* File delete commit message */}
+ {op === "FILE_DELETE" && (
+
+
+ setValues({ ...values, commitMessage: e.target.value })}
+ />
+
+ )}
+
+ {/* Release fields */}
+ {isRelease && (isCreate || isUpdate) && (
+ <>
+
+
+ setValues({ ...values, tagName: e.target.value })}
+ />
+
+
+
+ setValues({ ...values, releaseName: e.target.value })}
+ />
+
+
+
+
+
+ setValues({ ...values, draft: v })}
+ />
+
+
+
+ setValues({ ...values, prerelease: v })}
+ />
+
+
+ >
+ )}
+
+ {/* Repo create description */}
+ {op === "REPOSITORY_CREATE" && (
+
+
+
+ )}
+
+ {/* Repo dispatch */}
+ {op === "REPOSITORY_DISPATCH" && (
+ <>
+
+
+ setValues({ ...values, eventType: e.target.value })}
+ />
+
+
+
+
+ >
+ )}
+
+ {/* Gist fields */}
+ {isGist && (
+
+
+
+ )}
+
+ {/* Per page for list operations */}
+ {op.includes("LIST") && (
+
+
+ setValues({ ...values, perPage: parseInt(e.target.value) || 30 })}
+ />
+
+ )}
+
+ )
+}
diff --git a/src/features/executions/components/github/components/workflow-fields.tsx b/src/features/executions/components/github/components/workflow-fields.tsx
new file mode 100644
index 0000000..bb4fee5
--- /dev/null
+++ b/src/features/executions/components/github/components/workflow-fields.tsx
@@ -0,0 +1,206 @@
+import { useEffect, useState } from "react"
+import { Input } from "@/components/ui/input"
+import { Label } from "@/components/ui/label"
+import { Textarea } from "@/components/ui/textarea"
+import { GitHubConfig } from "../types"
+
+interface WorkflowFieldsProps {
+ values: Partial