MCPcopy Create free account
hub / github.com/github/gh-aw / extractActionMetadata

Function extractActionMetadata

pkg/cli/generate_action_metadata_command.go:153–191  ·  view source on GitHub ↗

extractActionMetadata extracts metadata from a JavaScript file

(filename, content string)

Source from the content-addressed store, hash-verified

151
152// extractActionMetadata extracts metadata from a JavaScript file
153func extractActionMetadata(filename, content string) (*ActionMetadata, error) {
154 generateActionMetadataLog.Printf("Extracting metadata from %s", filename)
155
156 // Extract action name from filename (e.g., "noop.cjs" -> "noop")
157 actionName := strings.TrimSuffix(filename, ".cjs")
158
159 // Extract description from JSDoc comment
160 description := extractDescription(content)
161 if description == "" {
162 description = fmt.Sprintf("Process %s safe output", actionName)
163 }
164
165 // Generate human-readable name from action name
166 name := generateHumanReadableName(actionName)
167
168 // Extract inputs
169 inputs := extractInputs(content)
170
171 // Extract outputs
172 outputs := extractOutputs(content)
173
174 // Extract dependencies
175 dependencies := extractDependencies(content)
176
177 metadata := &ActionMetadata{
178 Name: name,
179 Description: description,
180 Filename: filename,
181 ActionName: actionName,
182 Inputs: inputs,
183 Outputs: outputs,
184 Dependencies: dependencies,
185 }
186
187 generateActionMetadataLog.Printf("Extracted metadata: %d inputs, %d outputs, %d dependencies",
188 len(inputs), len(outputs), len(dependencies))
189
190 return metadata, nil
191}
192
193// extractDescription extracts description from JSDoc comment
194func extractDescription(content string) string {

Callers 2

Calls 6

extractDescriptionFunction · 0.85
extractInputsFunction · 0.85
extractOutputsFunction · 0.85
extractDependenciesFunction · 0.85
PrintfMethod · 0.45

Tested by 1