@@ -2277,38 +2277,74 @@ func AddCommentToPendingReview(t translations.TranslationHelperFunc) inventory.S
22772277 },
22782278 []scopes.Scope {scopes .Repo },
22792279 func (ctx context.Context , deps ToolDependencies , _ * mcp.CallToolRequest , args map [string ]any ) (* mcp.CallToolResult , any , error ) {
2280- var params struct {
2281- Owner string
2282- Repo string
2283- PullNumber int32
2284- Path string
2285- Body string
2286- SubjectType string
2287- Line * int32
2288- Side * string
2289- StartLine * int32
2290- StartSide * string
2280+ owner , err := RequiredParam [string ](args , "owner" )
2281+ if err != nil {
2282+ return utils .NewToolResultError (err .Error ()), nil , nil
22912283 }
2292- if err := mapstructure .WeakDecode (args , & params ); err != nil {
2284+ repo , err := RequiredParam [string ](args , "repo" )
2285+ if err != nil {
2286+ return utils .NewToolResultError (err .Error ()), nil , nil
2287+ }
2288+ pullNumber , err := RequiredInt (args , "pullNumber" )
2289+ if err != nil {
2290+ return utils .NewToolResultError (err .Error ()), nil , nil
2291+ }
2292+ path , err := RequiredParam [string ](args , "path" )
2293+ if err != nil {
22932294 return utils .NewToolResultError (err .Error ()), nil , nil
22942295 }
2296+ body , err := RequiredParam [string ](args , "body" )
2297+ if err != nil {
2298+ return utils .NewToolResultError (err .Error ()), nil , nil
2299+ }
2300+ subjectType , err := RequiredParam [string ](args , "subjectType" )
2301+ if err != nil {
2302+ return utils .NewToolResultError (err .Error ()), nil , nil
2303+ }
2304+ line , err := OptionalIntParam (args , "line" )
2305+ if err != nil {
2306+ return utils .NewToolResultError (err .Error ()), nil , nil
2307+ }
2308+ side , _ := OptionalParam [string ](args , "side" )
2309+ startLine , err := OptionalIntParam (args , "startLine" )
2310+ if err != nil {
2311+ return utils .NewToolResultError (err .Error ()), nil , nil
2312+ }
2313+ startSide , _ := OptionalParam [string ](args , "startSide" )
22952314
22962315 client , err := deps .GetGQLClient (ctx )
22972316 if err != nil {
22982317 return utils .NewToolResultErrorFromErr ("failed to get GitHub GQL client" , err ), nil , nil
22992318 }
23002319
2320+ var linePtr , startLinePtr * int32
2321+ if line != 0 {
2322+ l := int32 (line ) // #nosec G115
2323+ linePtr = & l
2324+ }
2325+ if startLine != 0 {
2326+ sl := int32 (startLine ) // #nosec G115
2327+ startLinePtr = & sl
2328+ }
2329+ var sidePtr , startSidePtr * string
2330+ if side != "" {
2331+ sidePtr = & side
2332+ }
2333+ if startSide != "" {
2334+ startSidePtr = & startSide
2335+ }
2336+
23012337 result , err := AddCommentToPendingReviewCall (ctx , client , AddCommentToPendingReviewParams {
2302- Owner : params . Owner ,
2303- Repo : params . Repo ,
2304- PullNumber : params . PullNumber ,
2305- Path : params . Path ,
2306- Body : params . Body ,
2307- SubjectType : params . SubjectType ,
2308- Line : params . Line ,
2309- Side : params . Side ,
2310- StartLine : params . StartLine ,
2311- StartSide : params . StartSide ,
2338+ Owner : owner ,
2339+ Repo : repo ,
2340+ PullNumber : int32 ( pullNumber ), // #nosec G115 - PR numbers are always small positive integers
2341+ Path : path ,
2342+ Body : body ,
2343+ SubjectType : subjectType ,
2344+ Line : linePtr ,
2345+ Side : sidePtr ,
2346+ StartLine : startLinePtr ,
2347+ StartSide : startSidePtr ,
23122348 })
23132349 return result , nil , err
23142350 })
0 commit comments