diff --git a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/gh-api-request.ts b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/gh-api-request.ts index 2416e0c69..3808f9560 100644 --- a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/gh-api-request.ts +++ b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/gh-api-request.ts @@ -91,11 +91,14 @@ interface CodeSearchRequest { interface AutoModelRequest { request: { kind: RequestKind.AutoModel; + body?: { + candidates: string; + }; }; response: { status: number; body?: { - candidates: string; + models: string; }; message?: string; }; diff --git a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/request-handlers.ts b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/request-handlers.ts index c4d107040..d8fe8af94 100644 --- a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/request-handlers.ts +++ b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/request-handlers.ts @@ -231,8 +231,8 @@ function createAutoModelRequestHandler( // During automodeling there can be multiple API requests for each batch // of candidates we want to model. We need to return different responses for each request, // so keep an index of the request and return the appropriate response. - return rest.get( - `${baseUrl}/code-scanning/codeql/auto-model`, + return rest.post( + `${baseUrl}/repos/github/codeql/code-scanning/codeql/auto-model`, (_req, res, ctx) => { const request = autoModelRequests[requestIndex]; diff --git a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/0-autoModel.json b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/0-autoModel.json new file mode 100644 index 000000000..1aef8ebac --- /dev/null +++ b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/0-autoModel.json @@ -0,0 +1,11 @@ +{ + "request": { + "kind": "autoModel" + }, + "response": { + "status": 200, + "body": { + "models": "extensions:\n- addsTo: {extensible: sinkModel, pack: codeql/java-all}\n data:\n - [javax.servlet.http, HttpServletResponse, true, sendRedirect, (String), '', 'Argument[this]',\n request-forgery, ai-generated]\n - [javax.servlet.http, HttpServletResponse, true, sendRedirect, (String), '', 'Argument[0]',\n request-forgery, ai-generated]\n" + } + } +} diff --git a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/1-autoModel.json b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/1-autoModel.json new file mode 100644 index 000000000..44aa6a14f --- /dev/null +++ b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/1-autoModel.json @@ -0,0 +1,11 @@ +{ + "request": { + "kind": "autoModel" + }, + "response": { + "status": 200, + "body": { + "models": "extensions:\n- addsTo: {extensible: sinkModel, pack: codeql/java-all}\n data:\n - [javax.servlet, MultipartConfigElement, true, MultipartConfigElement, (String),\n '', 'Argument[0]', request-forgery, ai-generated]\n" + } + } +} diff --git a/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/README.md b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/README.md new file mode 100644 index 000000000..02382bce1 --- /dev/null +++ b/extensions/ql-vscode/src/variant-analysis/gh-api/mocks/scenarios/auto-model-success/README.md @@ -0,0 +1 @@ +This scenario is best when modeling the `javax.servlet-api` package.