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

Method processMatch

pkg/workflow/expression_extraction.go:107–136  ·  view source on GitHub ↗

processMatch handles a single regex match from the expression extraction regex. It applies content transformations, emits any deprecation warnings, registers the primary mapping, and expands compound expressions into sub-expression mappings. It is a no-op for empty content or already-seen expression

(originalExpr, rawContent string)

Source from the content-addressed store, hash-verified

105// the primary mapping, and expands compound expressions into sub-expression
106// mappings. It is a no-op for empty content or already-seen expressions.
107func (e *ExpressionExtractor) processMatch(originalExpr, rawContent string) {
108 content := strings.TrimSpace(rawContent)
109 if content == "" {
110 expressionExtractionLog.Printf("Skipping empty expression: %s", originalExpr)
111 return
112 }
113
114 originalContent := content
115 content = applyContentTransformers(content, defaultContentTransformers)
116
117 // Skip if we've already seen this expression (also prevents duplicate deprecation warnings)
118 if _, exists := e.mappings[originalExpr]; exists {
119 return
120 }
121
122 // Emit deprecation warning once per unique deprecated activation-output expression
123 if content != originalContent && strings.HasPrefix(content, "steps.sanitized.outputs.") {
124 fmt.Fprintln(os.Stderr, console.FormatWarningMessage(
125 fmt.Sprintf("Deprecated expression ${{ %s }}: use ${{ %s }} instead.", originalContent, content),
126 ))
127 }
128
129 e.mappings[originalExpr] = &ExpressionMapping{
130 Original: originalExpr,
131 EnvVar: e.generateEnvVarName(content),
132 Content: content,
133 }
134
135 e.addSubExpressionMappings(content)
136}
137
138// ExtractExpressions extracts all ${{ ... }} expressions from the markdown content
139// and creates environment variable mappings for each unique expression.

Callers 1

ExtractExpressionsMethod · 0.95

Calls 5

generateEnvVarNameMethod · 0.95
FormatWarningMessageFunction · 0.92
applyContentTransformersFunction · 0.85
PrintfMethod · 0.45

Tested by

no test coverage detected