Skip to content

master updaet post Ginger 2025.4 Beta#4299

Merged
Maheshkale447 merged 96 commits into
masterfrom
Releases/Beta
Sep 5, 2025
Merged

master updaet post Ginger 2025.4 Beta#4299
Maheshkale447 merged 96 commits into
masterfrom
Releases/Beta

Conversation

@Maheshkale447

@Maheshkale447 Maheshkale447 commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Thank you for your contribution.
Before submitting this PR, please make sure:

  • PR description and commit message should describe the changes done in this PR
  • Verify the PR is pointing to correct branch i.e. Release or Beta branch if the code fix is for specific release , else point it to master
  • Latest Code from master or specific release branch is merged to your branch
  • No unwanted\commented\junk code is included
  • No new warning upon build solution
  • Code Summary\Comments are added to my code which explains what my code is doing
  • Existing unit test cases are passed
  • New Unit tests are added for your development
  • Sanity Tests are successfully executed for New and Existing Functionality
  • Verify that changes are compatible with all relevant browsers and platforms.
  • After creating pull request there should not be any conflicts
  • Resolve all Codacy comments
  • Builds and checks are passed before PR is sent for review
  • Resolve code review comments
  • Update the Help Library document to match any feature changes

Summary by CodeRabbit

  • New Features
    • Integrated ZAP security testing: new configuration page with test connection, menu entry, and enablement in Web and Web Services drivers (Active/Passive, thresholds, fail-on-issue).
    • New “Security Testing” action with reporting and vulnerability summaries.
    • OCR-based “Get Value by OCR” action available across Windows and Web platforms.
    • Added “In Progress” run status.
  • Enhancements
    • POM UI: “Learned Type” columns, easier add/delete of properties.
    • Simplified wizard processing UI; expanded SVG actions; improved headless window sizing.
    • More reliable online HTML report opening.
  • Chores
    • New LocalSetup and LocalSetupToken settings; legacy HTML report URL removed.

amanpras and others added 30 commits July 18, 2025 15:31
…riverUpgrade

Selenium Upgrade and AI Related changes
Mahesh Kale and others added 23 commits September 5, 2025 01:52
…tion

Bugfix/Headless Execution Default Size
…rnFix

D49300_Svg Child element Support Added
Updated Magic Net package and Account report APIs
…Changes

Updated Ginger Play Itegtration to remove Ginger Html Report Service URL
@coderabbitai

coderabbitai Bot commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds ZAP security testing integration (UI pages, configs, driver bindings, action, client wrappers, and tests), introduces OCR-based value retrieval across platforms, updates centralized HTML report handling and endpoints, refactors version comparison using record-based parsing with tests, and applies assorted UI tweaks, enums/properties, and package upgrades.

Changes

Cohort / File(s) Summary
ZAP security testing feature
Ginger/.../Actions/ActionEditPages/ActSecurityTestingEditPage.xaml, .../ActSecurityTestingEditPage.xaml.cs, GingerCoreNET/ActionsLib/UI/Web/ActSecurityTesting.cs, Ginger/.../ExternalConfigurations/ZAPConfigurationPage.xaml, .../ZAPConfigurationPage.xaml.cs, GingerCoreCommon/External/Configurations/ZAPConfiguration.cs, Ginger/.../MenusLib/ConfigurationsMenu.cs, Ginger/.../SolutionWindows/AddSolutionPage.xaml.cs, GingerCoreCommon/Repository/GingerSolutionRepository.cs, GingerCoreNET/External/ZAP/* (IZapClient, ZapClientWrapper, ZapProxyService), Ginger/.../Drivers/DriversConfigsEditPages/WebAgentConfigEditPage.xaml, .../WebAgentConfigEditPage.xaml.cs, Ginger/.../Drivers/DriversConfigsEditPages/WebServicesDriverEditPage.xaml, .../WebServicesDriverEditPage.xaml.cs, GingerCoreNET/Drivers/WebServicesDriver/WebServicesDriver.cs, GingerCoreCommon/EnumsLib/eImageType.cs, Ginger/.../UserControlsLib/ImageMakerLib/ImageMakerControl.xaml.cs, Ginger/Ginger.csproj, GingerCore/GingerCore.csproj, GingerCoreNET/GingerCoreNET.csproj
Introduces ZAP configuration UI and storage, action edit page, driver bindings (Selenium/WebServices), ZAP client/service wrappers, scan/report flows, menu entry, default config creation, repository mapping, image assets/enums, and package refs (OWASPZAPDotNetAPI).
OCR value retrieval
GingerCore/Drivers/Common/UIElementOperationsHelper.cs, GingerCore/Drivers/WindowsLib/WindowsDriver.cs, GingerCoreCommon/Actions/UI Element/ActUIElement.cs, GingerCoreNET/Run/Platforms/PlatformsInfo/* (PlatformInfoBase, PowerBuilderPlatform, WindowsPlatform), GingerCore/GingerOCR/GingerOcrOperations.cs, GingerCore/GingerCore.csproj
Adds OCR GetValueByOCR support and window foregrounding; wires new action into drivers/platforms; exposes OCR byte-array reader; updates Tesseract package.
Centralized reporting updates
GingerCoreNET/Run/GingerRemoteExecutionUtils.cs, Ginger/.../Run/RunSetsExecutionsHistoryPage.xaml.cs, Ginger/.../RunSetPageLib/NewRunSetPage.xaml.cs, GingerCoreNET/Run/RunListenerLib/CenteralizedExecutionLogger/AccountReportApiHandler.cs, .../AccountReportEntitiesDataMapping.cs
Makes GenerateHTMLReport static, adds link helper, improves error handling; updates call sites; switches endpoints to HtmlReport and gates sends with a runset flag; adjusts end-data mappings to include StartTimeStamp.
Local setup and endpoint config
Ginger/Ginger/App.config, GingerCoreNET/External/GingerPlay/GingerPlayEndPointManager.cs, GingerCoreNET/External/GingerPlay/GingerPlayAPITokenManager.cs, GingerCoreNET/GeneralLib/General.cs
Removes HTML_REPORT_SERVICE_URL; adds LocalSetup/LocalSetupToken and AIBatchSize accessors; aligns HTML report URL source; adjusts token handling for local setup; adds CreateZAPConfiguration helper.
POM/UI and learned-type updates
Ginger/.../POMModels/POMWizardLib/LearnWizard/POMLearnConfigWizardPage.xaml, .../POMLearnConfigWizardPage.xaml.cs, .../PomAllElementsPage.xaml.cs, .../PomElementsPage.xaml, .../PomElementsPage.xaml.cs, Ginger/.../UserControlsLib/UCElementDetails.xaml, Ginger/.../WizardLib/WizardWindow.xaml, .../WizardWindow.xaml.cs, GingerCoreCommon/UIElement/ElementInfo.cs, GingerCoreCommon/UIElement/ElementLocator.cs, GingerCoreCommon/UIElement/UIElementFilter.cs, GingerCoreNET/Run/Platforms/PlatformsInfo/WebPlatformInfo.cs
Tweaks AI UI text/tooltip and removes AI row styles; introduces LearnedType for elements/locators and updates grids; enables add/delete element properties; removes AI loader image; adds SVG description and actions; adds IsCommonElementType filter flag.
Version comparison (record-based) + tests
GingerCoreCommon/GeneralLib/ApplicationInfo.cs, GingerCoreNET/SolutionRepositoryLib/UpgradeLib/SolutionUpgrade.cs, GingerCoreNETUnitTest/SolutionRepositoryLib/SolutionUpgradeTest.cs, GingerCoreCommon/GingerCoreCommon.csproj
Adds VersionParts record and ConvertApplicationVersionToRecord; implements record-based comparison and integrates into solution upgrade; adds unit tests; bumps assembly/file version.
Magick.NET API updates
GingerCoreNET/ActionsLib/UI/VisualTesting/MagickAnalyzer.cs, GingerTest/GeneralLib/VisualCompare.cs, Ginger/Ginger.csproj, GingerCoreNET/GingerCoreNET.csproj, GingerTest/GingerTest.csproj
Adapts to new Compare signature returning IMagickImage; updates package versions to 14.8.2; adjusts resource entries.
Minor editor/state and utility changes
Ginger/.../ExternalConfigurations/*ConfigurationPage.xaml.cs (AskLisa, GingerOps, GingerPlay, WireMock), GingerCoreNET/Drivers/CoreDrivers/Web/POM/POMUtils.cs, GingerCoreNET/Application Models/Learn/POM/PomLearnUtils.cs, GingerCore/GeneralLib/General.cs, GingerCore/Actions/UIAutomation/UIAComWrapperHelper.cs, Ginger/.../UserControlsLib/UCElementDetails.xaml.cs, GingerCoreNET/Drivers/CoreDrivers/Web/Playwright/PlaywrightDriver.cs, GingerCoreCommon/EnumsLib/eStatus.cs, GingerCoreNET/GeneralLib/ElementWrapperInfo.cs
Sets CurrentSelectedItem on init for configs; guards reflection and batching in POM AI; adds FillComboWithYesNo; formatting cleanups; Playwright args tweak; adds InProgress to eRunStatus; changes EnhanceLocatorsByAI type to object.
Unit tests for ZAP service
GingerCoreNETUnitTest/ZAP/ZapProxyServiceTests.cs
Adds tests covering URL parsing, connectivity, passive/active scans, report generation, URL tree ops, and result evaluation via mocked IZapClient.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant UI as WebServicesDriverEditPage
  participant Driver as WebServicesDriver
  participant ZAP as ZapProxyService
  participant ZC as ZAP Server

  User->>UI: Enable "Security Testing" + select Scan/Vulnerability/Fail
  UI->>Driver: Bind UseSecurityTesting/ZapScanType/ZapVulnerability/FailAction
  alt UseSecurityTesting = true
    Driver->>ZAP: IsZapRunning()
    ZAP->>ZC: core.version
    ZC-->>ZAP: version
    ZAP-->>Driver: true/false
    alt Active scan
      Driver->>ZAP: ActiveScanAPI(targetHost)
      ZAP->>ZC: core.accessUrl + ascan.scan/status (poll)
      ZC-->>ZAP: scan complete
      Driver->>ZAP: GenerateZapReport(site, dir, file)
      ZAP->>ZC: reports.generate
      ZC-->>ZAP: OK
      Driver-->>UI: Update action status (fail if configured)
    else Passive scan
      Driver->>ZAP: AddUrlToScanTree(site)
      ZAP->>ZC: core.accessUrl + core.urls
      ZAP->>ZC: pscan.recordsToScan (poll)
      ZC-->>ZAP: 0
      Driver->>ZAP: AlertsSummary(target)
      ZAP->>ZC: alert.alertsSummary
      ZC-->>ZAP: counts
      Driver-->>UI: Update status based on threshold
    end
  else UseSecurityTesting = false
    Driver-->>UI: Proceed without ZAP
  end
Loading
sequenceDiagram
  autonumber
  actor User
  participant Act as ActSecurityTesting
  participant Page as ActSecurityTestingEditPage
  participant ZAP as ZapProxyService
  participant Repo as SolutionRepository
  participant ZC as ZAP Server

  User->>Page: Configure ScanType + Allowed Alerts
  Page->>Act: Bind ScanType, AlertList/Items
  Act->>Repo: Load ZAPConfiguration
  Act->>ZAP: ExecuteActiveZapScan/ExecutePassiveZapScan(url)
  alt Active
    ZAP->>ZC: ascan.scan/status (poll)
  else Passive
    ZAP->>ZC: pscan.recordsToScan (poll)
  end
  ZAP->>ZC: reports.generate + alert.alertsSummary
  ZC-->>ZAP: report + summary
  ZAP-->>Act: Results
  Act-->>User: Set RunStatus, attach report, return params
Loading
sequenceDiagram
  autonumber
  participant Runner as ActionExecutor
  participant Driver as WindowsDriver
  participant Ops as UIElementOperationsHelper
  participant OCR as GingerOcrOperations

  Runner->>Driver: Execute(ActUIElement: GetValueByOCR)
  Driver->>Ops: GetValueByOCR(automationElement)
  Ops->>Ops: Capture rect bitmap -> PNG bytes
  Ops->>OCR: ReadTextFromByteArray(bytes)
  OCR-->>Ops: extracted text
  Ops-->>Driver: ActionResult(value)
  Driver-->>Runner: Output param populated
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A rabbit hops through scans and light,
With ZAP in paw and Shield held tight.
It reads by sight where text won’t show,
OCR whispers what we need to know.
Reports now sparkle, links take flight—
Version gears click, all snug and right.
Hippity dev, the build’s a delight! 🛡️🐇

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch Releases/Beta

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@Maheshkale447
Maheshkale447 merged commit 158ae3c into master Sep 5, 2025
17 of 20 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Oct 12, 2025
15 tasks
@coderabbitai coderabbitai Bot mentioned this pull request Nov 17, 2025
15 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants