Merge 2026.3 to master#4457
Conversation
* Update codeql-analysis.yml * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * Master for beta merge (#4429) * Merge master into beta (#4418) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b142. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Feature/uft lab phone selection (#4414) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b142. * Fixed DBoperations Git Alerts * Build Errors Fixed * added an api call to fetch the current devices in the UFT Mobile Agent configurations * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * added a button to see the phones when selecting utf device and select from the list * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * tested and fixed all edge cases of the device selection (wrong or empty fields and switching platform) * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * fixed uft devices button * fixed the design and made a filtering for the phone list * fixed phone lab filtering system * Removed the task implementation in unix agent * changed UI from rejects raised * updated the ui design --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * fixed defect number 58085 (#4411) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b142. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * added the status code number in the json and the output of the rest api call * Rename status code parameter for clarity * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Update version numbers in GingerCoreCommon.csproj * Feature/android tv automation support (#4413) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b142. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Add Android TV support and enhance platform handling Enhanced platform support by introducing Android TV as a new platform type (`ePlatformType.AndroidTV`) alongside Mobile and iOS. Updated platform descriptions to include "Mobile/TV" for better clarity and added new image types for visual representation. UI components now display friendly platform descriptions and improved tooltips. Added ComboBox support for enum descriptions in grids. Extended the Appium driver to support Android TV with specific capabilities, configurations. Improved error handling and fallback mechanisms for driver initialization. Updated `ActMobileDevice` to include Android TV-specific actions and defaulted action descriptions to "Mobile/Tv Device Action." Enhanced `DeviceViewPage` to handle Android TV resolutions and scaling. Added dynamic screen size calculations with fallbacks for Android TV. Updated agent configurations to include Android TV as a selectable driver type and set default configurations for Android TV agents. Refactored code for better maintainability, improved exception handling, and consolidated driver configuration logic. Added new image resources for Android TV. Improved `GenericAppiumDriver` to handle Android TV-specific scenarios, including focused element detection and screenshot scaling. * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * enhancement relted android TV - livespy * enhancement related to android TV * Refactor and enhance platform-specific logic Refactored multiple methods across the codebase to improve maintainability, performance, and platform-specific functionality. Key changes include: - Simplified `timenow` method in `PomAllElementsPage.xaml.cs` with improved user feedback and streamlined logic. - Enhanced `BitmapToBase64` in `PomLearnUtils.cs` with null-checks, fallback mechanisms, and better error handling. - Removed redundant methods `LoadGingerLiveSpyScript` and `GetFocusedElementInfo` in `GenericAppiumDriver.cs`. - Refactored `SimulatePhotoOrBarcode` to update `GingerLiveSpy.js` handling. - Added platform-specific logic for `HighLightElement`, `GetElementAtMousePosition`, `FindElementXmlNodeByXY`, `GetElementAtPoint`, and `GetPointOnAppWindow` in `GenericAppiumDriver.cs` to support Android TV, Android (mobile), iOS, and Web. - Improved shadow DOM support and optimized event handling in `GingerLiveSpy.js`. - Enhanced error handling, logging, and fallback mechanisms across the codebase. These changes improve cross-platform compatibility, user experience, and code maintainability. * Refactor and improve code readability and performance Refactored `ResizeDeviceButtons` and `GetDevicePoint` methods in `DeviceViewPage.xaml.cs` to simplify logic, remove redundant checks, and improve maintainability. Updated `eDeviceSource` enum in `MobileDriverCommon.cs` by removing `LambdaTest` and reassigning `AndroidTV`. Replaced the license header in `GingerLiveSpy.js` with an updated Apache License 2.0 notice. Added a new `ElementFromPoint` method to determine the deepest DOM element at a specific point. Refactored driver configuration logic in `AgentOperations.cs` to improve readability, simplify `DriverConfigParam` processing, enhance error handling, and remove duplicate code. Introduced a new `InitDriverConfigs` method for better organization. --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: tanushah <[email protected]> * Enhancement/shared repository folder view2 (#4419) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b142. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * folder view fix * merge conflict resolved * merge conflict resolved * enahcnement * code rabbit comments handled --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Improve Sikuli SetValue handling and focus logic (#4420) Refactored SetValue to check for empty text before typing and use KeyModifier.NONE for normal input. Now sets an error if the value is empty. Also, SetFocusToSelectedApplicationInstance is now called synchronously instead of asynchronously. * Exclamation mark fix (#4421) * Exclamation mark fix * commit * Improve circular reference handling in JSON schema tools (#4422) Enhanced detection and prevention of circular references and stack overflows in JSON schema-to-object generation. Added try-catch blocks for safer property access, improved stack management, and more robust array/property traversal. Also improved error handling when adding API models to repository folders by logging and fallback to parent folder if needed. * Add tests for circular refs in JsonSchemaFaker, update count (#4423) Add unit tests to SwaggetTests.cs to ensure JsonSchemaFaker handles circular and self-referencing JSON schemas without infinite loops or errors. Import NJsonSchema for schema support. Update assertion for "Add a new pet to the store-JSON" to expect 7 return values instead of 8. * Handled set DS value issue (#4425) * add to BF iicon removal (#4426) * add to BF iicon removal * uncommented code * code rabbit suggestion --------- Co-authored-by: Ravi Kumar <[email protected]> * resolved conflicts * resolved conflicts --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> * Prevent Excel formula injection in CSV export (#4431) * Prevent Excel formula injection in CSV export D56006_Added logic to prefix values starting with '=', '+', '-', or '@' with a single quote when exporting BusinessFlow, Activity, Act description, and input parameters to CSV. This ensures spreadsheet applications treat these fields as plain text, preventing misinterpretation as formulas. Also refactored code for clarity using intermediate variables. * Refactor CSV export for clarity and null safety Renamed method parameters and loop variables for clarity and consistency. Updated references to use descriptive names. Added null check for act.Description to prevent exceptions. Improves code readability and robustness. --------- Co-authored-by: tanushah <[email protected]> * added an option to change text color in consoleDriver window * Action Description fix (#4434) * Update to .NET 10, package versions, and minor UI tweaks (#4435) * Update to .NET 10, package versions, and minor UI tweaks Upgraded all projects from .NET 8.0 to .NET 10.0. Updated System.Text.Json to 10.0.2 and System.Drawing.Common to 10.0.2. Added Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Tokens (8.15.0) to support JWT features. Bumped protobuf-net packages to 3.2.56. Improved XAML grid layout in DataSourceExportToExcelPage.xaml and added DesignerSerializationVisibility attributes in SnippingTool.cs. No functional logic changes. * upgrade dotnet version to 10 * push supported dotnet version for Github actions * Fix Dotnet version on Test stage * Fix CLI TestsGithub * Fix Test Dotnet Framework of Github with new version of dotnet * nuget packages updation * Downgrade EPPlus and Excel Interop, update dependencies Downgraded EPPlus to 6.0.4 and Microsoft.Office.Interop.Excel to 15.0.4795.1001 across multiple projects for compatibility. Removed Microsoft.IdentityModel.* and System.IdentityModel.Tokens.Jwt from core projects, and removed SixLabors.ImageSharp from GingerCoreNET. Reformatted System.Globalization entry in GingerCore. These changes address dependency and compatibility issues. --------- Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Mask API key in UI and update only on user edit (#4436) * Mask API key in UI and update only on user edit Added masking for API key in VRTExternalConfigurationsPage to prevent exposure. The real key is hidden with a generic mask, and only updated if the user changes the field. Existing key is preserved unless explicitly edited. * Addition of validation * updated validation * updated validation rule --------- Co-authored-by: tanushah <[email protected]> * Fix codeql-config.yml file place * Upgrade Github Actions versions * Update license headers to 2026 and add missing headers (#4440) Updated the copyright year in all license headers from 2014-2025 to 2014-2026 across the codebase. Added the standard license header to several files that were previously missing it. No functional code changes were made. Co-authored-by: tanushah <[email protected]> * Register serializer classes earlier; null check in IsReady (#4441) Ensure MyRepositoryItem is registered with the serializer before test solution creation in SolutionRepositoryMultiThreadTest. Remove redundant registration call. Add null check to IsReady property in GingerSocket2Test to prevent possible NullReferenceException. * Downgrade LibGit2Sharp.NativeBinaries to 2.0.278 (#4442) Updated GingerCore.csproj and GingerCoreNET.csproj to use LibGit2Sharp.NativeBinaries version 2.0.278 instead of 2.0.323. No other changes were made. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated the SSH and Cryptography nuget package to latest (#4432) Co-authored-by: Ravi Kumar <[email protected]> * contract update for pipeline run description (#4437) Co-authored-by: Ravi Kumar <[email protected]> * Added Code to allow Solution File to be loaded using SolutionRepository and changed version to 2026.3 (#4443) Co-authored-by: Mayur Rathi <[email protected]> --------- Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> Co-authored-by: Omri Agady <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]>
* Revert solution iteminfo from SolutionRepository * updated nuget version for publishing --------- Co-authored-by: Mayur Rathi <[email protected]>
…-Solution-xml-in-parser-using-Solution-Repository-classes Allow fetching ginger solution xml in parser using solution repository classes
…tected by Dependebot Github Security scan alert (#4451) Co-authored-by: Mayur Rathi <[email protected]>
* Enhance API Key encryption and remove masking logic API Key is now encrypted on field exit and before saving, unless it is a value expression or already encrypted. Removed the previous masking/tag mechanism for the API Key textbox, simplifying the logic and improving security. Added necessary using directives for new functionality. * Encrypt API keys and tokens and before save Added automatic encryption for Applitools and Sealights sensitive fields (API keys, agent tokens) when text boxes lose focus and before saving configurations. Skips encryption for value expressions and already encrypted values. Event handlers are attached and re-attached as needed. Includes minor refactoring and comments. * by mistake changes revert --------- Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]>
* Refactor export query logic for Excel data source Improve CreateQueryWithWhereList using LINQ and switch for operators, skipping invalid conditions and returning cleaner query strings. Update DataSourceExportToExcelPage to persist ExportQueryValue in both action and standalone modes, ensuring consistent query generation and improved code clarity. * Add NotStartsWith/NotEndsWith operators and improve where clause Added support for "NotStartsWith" and "NotEndsWith" operators in SQL-like predicate generation using "Not Like". Also updated logic to omit the "where" keyword when no conditions are present, returning only the column list for cleaner output. --------- Co-authored-by: tanushah <[email protected]>
Co-authored-by: amanpras <[email protected]> Co-authored-by: Ravi Kumar <[email protected]>
* Shared repository folder item fix * Column hide for Overriting Share repo --------- Co-authored-by: amanpras <[email protected]> Co-authored-by: Ravi Kumar <[email protected]>
Switched Build.yml and Release.yml to install and reference .NET SDK 10.0.103 instead of 8.0.100. Updated all file copy and signing steps to use net10.0-windows10.0.17763.0 output directories. Adjusted comments and references to match the new .NET version.
WalkthroughReplaces direct folder-tree root creation with a factory/deferred approach, adds LostKeyboardFocus encryption and pre-save encryption for API keys/tokens in external config pages, implements dynamic folder-column visibility in upload UI, and includes assorted repo, query, version, and installer updates. Changes
Sequence Diagram(s)sequenceDiagram
participant Page as Repository Page
participant UcListView as UcListView
participant Factory as Factory Delegate
participant TreeItem as Tree Item Root
Page->>UcListView: SetFolderTreeRootFactory(factory)
UcListView->>UcListView: Store factory
Note over UcListView: On list change or view toggle
UcListView->>UcListView: RefreshFolderTreeView()
UcListView->>Factory: Invoke factory delegate
Factory->>TreeItem: Create new tree item
UcListView->>UcListView: Rebuild tree with new root
UcListView->>UcListView: Restore expanded nodes
sequenceDiagram
participant User as User
participant TextBox as API Key TextBox
participant Handler as LostFocus Handler
participant Crypto as Encryption Service
participant Config as Configuration Object
User->>TextBox: Edit API key
User->>TextBox: Blur (lose focus)
TextBox->>Handler: LostKeyboardFocus
Handler->>Handler: If not value-expression && not encrypted
Handler->>Crypto: Encrypt(value)
Crypto->>Config: Update encrypted value
Note over Handler,Config: On Save
Handler->>Handler: Ensure key encrypted before Save
Handler->>Crypto: Encrypt if needed
Crypto->>Config: Persist encrypted value
Estimated code review effort🎯 4 (Complex) | ⏱️ ~55 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 15
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs (1)
191-201:⚠️ Potential issue | 🔴 CriticalCritical: Duplicate/orphan code causes compilation error.
Lines 199-201 contain unreachable code that exists outside the
CreateQueryWithWhereListmethod (which closes at line 197). This will cause a compilation error:
- The return statement at line 200 is not inside any method
- The extra closing brace at line 201 creates a brace mismatch
This appears to be leftover code from an incomplete merge or refactor.
Proposed fix: Remove duplicate code
return $"{columnList} where {whereClause}"; } - - // Return Ginger expected string: "col1,col2 where condition" - return $"{columnList} where {whereClause}"; - } public ObservableList<GingerCore.DataSource.ActDSConditon> GetConditons(ObservableList<WhereConditionItem> conditonStringList, System.Data.DataTable mDataTable)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs` around lines 191 - 201, Remove the duplicated orphan return and stray closing brace that exist outside the CreateQueryWithWhereList method; locate the CreateQueryWithWhereList function (which builds and returns $"{columnList} where {whereClause}" or columnList when whereClause is empty) and delete the extra duplicate return $"{columnList} where {whereClause}"; and remove the unmatched closing brace so the class compiles cleanly.Ginger/GingerCoreCommon/GingerCoreCommon.csproj (1)
11-11:⚠️ Potential issue | 🟠 MajorAlign target framework with coding guidelines or update guidelines for .NET 10 migration.
The project targets
net10.0, but the coding guideline specifies.NET 8.0 with Windows 10.0.17763.0 compatibility. Either update the project to use the specified framework or update the coding guidelines to reflect the .NET 10 migration strategy.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Ginger/GingerCoreCommon/GingerCoreCommon.csproj` at line 11, The project currently targets net10.0 via the TargetFramework XML element in GingerCoreCommon.csproj; update the TargetFramework value to the coding-guideline-approved target (for example "net8.0-windows10.0.17763.0") to match the guideline, or alternatively update the coding guideline to document the intentional migration to .NET 10 and state the new TargetFramework value; ensure the change is made in the TargetFramework element so build tooling and CI reflect the chosen framework.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@Ginger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/AddItemToRepositoryWizard/UploadItemsSelectionPage.xaml.cs`:
- Around line 44-66: The BoolToVisibilityInvertConverter class is dead code
(defined but not used); either delete the private class
BoolToVisibilityInvertConverter from UploadItemsSelectionPage.xaml.cs to remove
unused code, or re-enable its intended use by restoring the commented visibility
binding in UploadItemsSelectionPage.xaml that referenced this converter so the
control binding uses BoolToVisibilityInvertConverter; ensure if you re-enable
the binding the converter is declared in the XAML resources or referenced
correctly and that Convert/ConvertBack signatures remain as implemented.
- Around line 256-261: The commented-out per-row visibility binding in
UploadItemsSelectionPage.xaml.cs (the panel.SetBinding call using
Binding(nameof(UploadItemSelection.IsOverrite)) with
BoolToVisibilityInvertConverter) is leftover now that column-level visibility is
used; remove this commented block to avoid confusion (delete the three commented
lines referencing panel.SetBinding, the BoolToVisibilityInvertConverter usage,
and the IsOverrite binding) so the intent is clear and no stale code remains.
- Around line 72-89: The page subscribes to items.CollectionChanged and each
UploadItemSelection.PropertyChanged in the constructor (mItemsList,
Items_CollectionChanged, Item_PropertyChanged) but never unsubscribes, causing a
memory leak; add an Unloaded event handler (e.g., this.Unloaded) that removes
the delegates: unsubscribe items.CollectionChanged, iterate mItemsList to detach
Item_PropertyChanged from each item's PropertyChanged, and also detach the
UploadItemsSelectionPage_Loaded if necessary, ensuring all event subscriptions
from UploadItemsSelectionPage are removed so the page and items can be garbage
collected.
In
`@Ginger/Ginger/ExternalConfigurations/ApplitoolsExternalConfigurationsPage.xaml.cs`:
- Around line 56-58: The LostKeyboardFocus handler is subscribed on
xAPIKeyTextBox.ValueTextBox but never unsubscribed; update the
ApplitoolsExternalConfigurationsPage class to remove that subscription during
cleanup (e.g., implement IDisposable.Dispose or handle Unloaded) by calling
xAPIKeyTextBox.ValueTextBox.LostKeyboardFocus -=
xAPIKeyTextBox_LostKeyboardFocus, or detach in an OnUnloaded/cleanup method to
avoid potential memory leaks while keeping the existing
xAPIKeyTextBox_LostKeyboardFocus method intact.
- Around line 61-75: Update the xAPIKeyTextBox_LostKeyboardFocus handler to
mirror the save handler by skipping encryption for null/empty/whitespace values:
before calling ValueExpression.IsThisAValueExpression(current) and
EncryptionHandler.IsStringEncrypted(current) add a guard using
string.IsNullOrWhiteSpace(current) to return early; keep existing checks for
value expressions (ValueExpression.IsThisAValueExpression) and only call
EncryptionHandler.EncryptwithKey when the string is non-whitespace and not
already encrypted, matching the behavior of xSaveButton_Click.
In
`@Ginger/Ginger/ExternalConfigurations/SealightsExternalConfigurationsPage.xaml.cs`:
- Line 143: Remove the informal reviewer-style comment "// you re-init all
controls here..." in SealightsExternalConfigurationsPage.xaml.cs and either
delete it or replace it with a professional, descriptive comment such as "//
Re-initialize controls after visibility change" to document intent; locate the
exact comment string to find the spot to update (ensure no other logic is
changed).
- Around line 120-128: The encryption conditional block around
_SealightsConfiguration.SealightsAgentToken is mis-indented; reformat the
if-statement and its body to match the file's surrounding indentation/style so
the opening brace, the nested conditions (ValueExpression.IsThisAValueExpression
and EncryptionHandler.IsStringEncrypted), and the assignment using
EncryptionHandler.EncryptwithKey are consistently indented and aligned with
other blocks in this class (SealightsExternalConfigurationsPage.xaml.cs).
- Around line 78-91: Wrap the encryption call in
xSealighsAgentTokenTextBox_LostKeyboardFocus with a try-catch around
EncryptionHandler.EncryptwithKey so encryption exceptions do not bubble up; call
Reporter.ToLog(eLogLevel.ERROR, "...") inside the catch (including exception
details and context like "Sealights agent token encryption failed") and leave
the textbox.Text unchanged on failure (i.e., only assign the encrypted value
when EncryptwithKey succeeds); keep the existing guards using
ValueExpression.IsThisAValueExpression and EncryptionHandler.IsStringEncrypted.
- Around line 20-21: Remove the duplicate using directive for
Amdocs.Ginger.Common in SealightsExternalConfigurationsPage.xaml.cs: keep a
single "using Amdocs.Ginger.Common;" and delete the redundant line so there is
only one import of that namespace; ensure no other necessary using statements
are inadvertently removed and rebuild to confirm no missing references.
In `@Ginger/Ginger/ExternalConfigurations/VRTExternalConfigurationsPage.xaml.cs`:
- Around line 71-84: In xAPIKeyTextBox_LostKeyboardFocus, skip encryption when
the textbox value is null/empty or only whitespace so empty required fields
remain detectable by ValidateEmptyValue; before calling
EncryptionHandler.IsStringEncrypted and EncryptwithKey, check textbox.Text for
string.IsNullOrWhiteSpace(current) and return early (or leave it unchanged) if
true, and otherwise proceed with the existing
ValueExpression.IsThisAValueExpression and EncryptionHandler checks.
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs`:
- Around line 457-479: The loop in RefreshExpandedTreeNodes casts treeNode.Items
to TreeViewItem which can yield nulls for non-TreeViewItem entries; instead
filter out nulls before iterating (e.g., use Items.OfType<TreeViewItem>() or a
null-check) so you only call RefreshExpandedTreeNodes on actual TreeViewItem
instances and avoid creating a list with nulls; keep existing null guard at top
and retain the xFolderTreeView.RefreshTreeViewItemChildrens(treeNode) call for
the firstChild logic.
- Around line 1224-1231: Remove the duplicated/malformed block that repeats the
folder search logic (the code that reads xSearchTextBox.Text, cancels/disposes
mTreeSearchCts, recreates it, and calls xFolderTreeView.FilterItemsByText(...))
and the orphaned closing braces; locate the duplicate by searching for the
sequence referencing xSearchTextBox, mTreeSearchCts, and
xFolderTreeView.FilterItemsByText in UcListView.xaml.cs and keep only the
correctly placed single copy (the original folder view search logic), deleting
the extra lines so there are no duplicated calls or unmatched braces remaining.
- Around line 427-455: RefreshFolderTreeView is replacing mFolderTreeRoot with a
new instance without unregistering CollectionChanged handlers attached by
NewTreeViewItemBase.GetChildrentGeneric, causing a memory leak; before you
overwrite mFolderTreeRoot (created by mFolderTreeRootFactory()) call a cleanup
API on the existing root to unregister those handlers. Add a cleanup method to
the tree item contract (e.g., ITreeViewItem.Dispose or
UnregisterRepositoryHandlers) and implement it in NewTreeViewItemBase to remove
any CollectionChangedEventManager registrations; then in RefreshFolderTreeView
call that cleanup on the old mFolderTreeRoot (and any expanded children if
necessary) prior to calling xFolderTreeView.ClearTreeItems() and replacing
mFolderTreeRoot.
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs`:
- Line 22: The using directive "using LiteDB;" in ExportToExcelConfig.cs is
unused; remove that import from the top of the file (in the ExportToExcelConfig
class/file) to clean up unnecessary references and ensure no unused namespace
remains; if the LiteDB types are intended to be used later, instead add the
necessary type references where needed or keep the import only when used.
In `@Ginger/GingerInstallerScript.iss`:
- Around line 48-52: The DetectAndInstallPrerequisites procedure still
references the old .NET runtime names; update all occurrences inside
DetectAndInstallPrerequisites (and any calls it makes) to match the bundled
installer filenames and versions (e.g., replace
windowsdesktop-runtime-8.0.22-win-x64.exe and
aspnetcore-runtime-8.0.22-win-x64.exe with
windowsdesktop-runtime-10.0.3-win-x64.exe and
aspnetcore-runtime-10.0.3-win-x64.exe) and ensure calls to ExtractTemporaryFile
and Exec or ShellExec use those exact 10.0.3 names so extraction and install
steps match the [Files] entries and the .NET 10 runtime is installed.
---
Outside diff comments:
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs`:
- Around line 191-201: Remove the duplicated orphan return and stray closing
brace that exist outside the CreateQueryWithWhereList method; locate the
CreateQueryWithWhereList function (which builds and returns $"{columnList} where
{whereClause}" or columnList when whereClause is empty) and delete the extra
duplicate return $"{columnList} where {whereClause}"; and remove the unmatched
closing brace so the class compiles cleanly.
In `@Ginger/GingerCoreCommon/GingerCoreCommon.csproj`:
- Line 11: The project currently targets net10.0 via the TargetFramework XML
element in GingerCoreCommon.csproj; update the TargetFramework value to the
coding-guideline-approved target (for example "net8.0-windows10.0.17763.0") to
match the guideline, or alternatively update the coding guideline to document
the intentional migration to .NET 10 and state the new TargetFramework value;
ensure the change is made in the TargetFramework element so build tooling and CI
reflect the chosen framework.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: a3c17c5d-f9c9-4698-887c-24b4a44f9e5a
⛔ Files ignored due to path filters (2)
.github/workflows/Build.ymlis excluded by!**/*.yml.github/workflows/Release.ymlis excluded by!**/*.yml
📒 Files selected for processing (15)
Ginger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/ActionsRepositoryPage.xaml.csGinger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/ActivitiesGroupsRepositoryPage.xaml.csGinger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/ActivitiesRepositoryPage.xaml.csGinger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/AddItemToRepositoryWizard/UploadItemsSelectionPage.xaml.csGinger/Ginger/DataSource/DataSourceExportToExcelPage.xaml.csGinger/Ginger/ExternalConfigurations/ApplitoolsExternalConfigurationsPage.xaml.csGinger/Ginger/ExternalConfigurations/SealightsExternalConfigurationsPage.xaml.csGinger/Ginger/ExternalConfigurations/VRTExternalConfigurationsPage.xaml.csGinger/Ginger/UserControlsLib/UCListView/UcListView.xaml.csGinger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.csGinger/GingerCoreCommon/GingerCoreCommon.csprojGinger/GingerCoreCommon/Repository/GingerSolutionRepository.csGinger/GingerCoreCommon/Repository/SolutionRepository.csGinger/GingerCoreNET/RunLib/DynamicExecutionLib/DynamicExecutionManager.csGinger/GingerInstallerScript.iss
💤 Files with no reviewable changes (1)
- Ginger/Ginger/DataSource/DataSourceExportToExcelPage.xaml.cs
| /// <summary> | ||
| /// Converter to invert boolean to visibility (true -> Collapsed, false -> Visible) | ||
| /// </summary> | ||
| private class BoolToVisibilityInvertConverter : IValueConverter | ||
| { | ||
| public object Convert(object value, Type targetType, object parameter, CultureInfo culture) | ||
| { | ||
| if (value is bool boolValue) | ||
| { | ||
| return boolValue ? Visibility.Collapsed : Visibility.Visible; | ||
| } | ||
| return Visibility.Visible; // Default to visible if not a bool | ||
| } | ||
|
|
||
| public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) | ||
| { | ||
| if (value is Visibility visibility) | ||
| { | ||
| return visibility != Visibility.Visible; | ||
| } | ||
| return false; | ||
| } | ||
| } |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Dead code: BoolToVisibilityInvertConverter is unused.
The BoolToVisibilityInvertConverter class is defined but its usage is commented out at lines 256-261. Either remove this unused class or uncomment the visibility binding.
♻️ Option 1: Remove unused converter
- /// <summary>
- /// Converter to invert boolean to visibility (true -> Collapsed, false -> Visible)
- /// </summary>
- private class BoolToVisibilityInvertConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
- {
- if (value is bool boolValue)
- {
- return boolValue ? Visibility.Collapsed : Visibility.Visible;
- }
- return Visibility.Visible; // Default to visible if not a bool
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
- {
- if (value is Visibility visibility)
- {
- return visibility != Visibility.Visible;
- }
- return false;
- }
- }
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| /// <summary> | |
| /// Converter to invert boolean to visibility (true -> Collapsed, false -> Visible) | |
| /// </summary> | |
| private class BoolToVisibilityInvertConverter : IValueConverter | |
| { | |
| public object Convert(object value, Type targetType, object parameter, CultureInfo culture) | |
| { | |
| if (value is bool boolValue) | |
| { | |
| return boolValue ? Visibility.Collapsed : Visibility.Visible; | |
| } | |
| return Visibility.Visible; // Default to visible if not a bool | |
| } | |
| public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) | |
| { | |
| if (value is Visibility visibility) | |
| { | |
| return visibility != Visibility.Visible; | |
| } | |
| return false; | |
| } | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Ginger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/AddItemToRepositoryWizard/UploadItemsSelectionPage.xaml.cs`
around lines 44 - 66, The BoolToVisibilityInvertConverter class is dead code
(defined but not used); either delete the private class
BoolToVisibilityInvertConverter from UploadItemsSelectionPage.xaml.cs to remove
unused code, or re-enable its intended use by restoring the commented visibility
binding in UploadItemsSelectionPage.xaml that referenced this converter so the
control binding uses BoolToVisibilityInvertConverter; ensure if you re-enable
the binding the converter is declared in the XAML resources or referenced
correctly and that Convert/ConvertBack signatures remain as implemented.
| public UploadItemsSelectionPage(ObservableList<UploadItemSelection> items, bool isConvert) | ||
| { | ||
| InitializeComponent(); | ||
| isConvertPage = isConvert; | ||
| mItemsList = items; | ||
| SetSelectedItemsGridView(); | ||
| itemSelectionGrid.DataSourceList = items; | ||
|
|
||
| // Listen to ItemUploadType changes to show/hide folder column dynamically | ||
| items.CollectionChanged += Items_CollectionChanged; | ||
| foreach (var item in items) | ||
| { | ||
| item.PropertyChanged += Item_PropertyChanged; | ||
| } | ||
|
|
||
| // Update folder column visibility after grid is loaded | ||
| this.Loaded += UploadItemsSelectionPage_Loaded; | ||
| } |
There was a problem hiding this comment.
Memory leak: Event handlers not unsubscribed on page unload.
Event handlers are subscribed to items.CollectionChanged and individual item PropertyChanged events, but there's no corresponding unsubscription when the page is unloaded. This can prevent garbage collection of the page and items.
🛡️ Proposed fix: Add Unloaded handler for cleanup
// Update folder column visibility after grid is loaded
this.Loaded += UploadItemsSelectionPage_Loaded;
+ this.Unloaded += UploadItemsSelectionPage_Unloaded;
}
+ private void UploadItemsSelectionPage_Unloaded(object sender, RoutedEventArgs e)
+ {
+ if (mItemsList != null)
+ {
+ mItemsList.CollectionChanged -= Items_CollectionChanged;
+ foreach (var item in mItemsList)
+ {
+ item.PropertyChanged -= Item_PropertyChanged;
+ }
+ }
+ }
+
private void UploadItemsSelectionPage_Loaded(object sender, RoutedEventArgs e)
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| public UploadItemsSelectionPage(ObservableList<UploadItemSelection> items, bool isConvert) | |
| { | |
| InitializeComponent(); | |
| isConvertPage = isConvert; | |
| mItemsList = items; | |
| SetSelectedItemsGridView(); | |
| itemSelectionGrid.DataSourceList = items; | |
| // Listen to ItemUploadType changes to show/hide folder column dynamically | |
| items.CollectionChanged += Items_CollectionChanged; | |
| foreach (var item in items) | |
| { | |
| item.PropertyChanged += Item_PropertyChanged; | |
| } | |
| // Update folder column visibility after grid is loaded | |
| this.Loaded += UploadItemsSelectionPage_Loaded; | |
| } | |
| public UploadItemsSelectionPage(ObservableList<UploadItemSelection> items, bool isConvert) | |
| { | |
| InitializeComponent(); | |
| isConvertPage = isConvert; | |
| mItemsList = items; | |
| SetSelectedItemsGridView(); | |
| itemSelectionGrid.DataSourceList = items; | |
| // Listen to ItemUploadType changes to show/hide folder column dynamically | |
| items.CollectionChanged += Items_CollectionChanged; | |
| foreach (var item in items) | |
| { | |
| item.PropertyChanged += Item_PropertyChanged; | |
| } | |
| // Update folder column visibility after grid is loaded | |
| this.Loaded += UploadItemsSelectionPage_Loaded; | |
| this.Unloaded += UploadItemsSelectionPage_Unloaded; | |
| } | |
| private void UploadItemsSelectionPage_Unloaded(object sender, RoutedEventArgs e) | |
| { | |
| if (mItemsList != null) | |
| { | |
| mItemsList.CollectionChanged -= Items_CollectionChanged; | |
| foreach (var item in mItemsList) | |
| { | |
| item.PropertyChanged -= Item_PropertyChanged; | |
| } | |
| } | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Ginger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/AddItemToRepositoryWizard/UploadItemsSelectionPage.xaml.cs`
around lines 72 - 89, The page subscribes to items.CollectionChanged and each
UploadItemSelection.PropertyChanged in the constructor (mItemsList,
Items_CollectionChanged, Item_PropertyChanged) but never unsubscribes, causing a
memory leak; add an Unloaded event handler (e.g., this.Unloaded) that removes
the delegates: unsubscribe items.CollectionChanged, iterate mItemsList to detach
Item_PropertyChanged from each item's PropertyChanged, and also detach the
UploadItemsSelectionPage_Loaded if necessary, ensuring all event subscriptions
from UploadItemsSelectionPage are removed so the page and items can be garbage
collected.
| //// Hide folder selection UI for overwrite items (folder cannot be changed during overwrite) | ||
| //panel.SetBinding(UIElement.VisibilityProperty, new Binding(nameof(UploadItemSelection.IsOverrite)) | ||
| //{ | ||
| // Converter = new BoolToVisibilityInvertConverter(), | ||
| // Mode = BindingMode.OneWay | ||
| //}); |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Clarify intent: Commented-out visibility binding.
The per-row visibility binding is commented out in favor of column-level visibility. If this is intentional (column visibility is preferred over row-level UI hiding), consider removing the commented code to reduce confusion.
♻️ Remove commented code if not needed
- //// Hide folder selection UI for overwrite items (folder cannot be changed during overwrite)
- //panel.SetBinding(UIElement.VisibilityProperty, new Binding(nameof(UploadItemSelection.IsOverrite))
- //{
- // Converter = new BoolToVisibilityInvertConverter(),
- // Mode = BindingMode.OneWay
- //});
-
var txt = new FrameworkElementFactory(typeof(TextBlock));
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| //// Hide folder selection UI for overwrite items (folder cannot be changed during overwrite) | |
| //panel.SetBinding(UIElement.VisibilityProperty, new Binding(nameof(UploadItemSelection.IsOverrite)) | |
| //{ | |
| // Converter = new BoolToVisibilityInvertConverter(), | |
| // Mode = BindingMode.OneWay | |
| //}); | |
| var txt = new FrameworkElementFactory(typeof(TextBlock)); |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Ginger/Ginger/AutomatePageLib/AddActionMenu/SharedRepositoryLib/AddItemToRepositoryWizard/UploadItemsSelectionPage.xaml.cs`
around lines 256 - 261, The commented-out per-row visibility binding in
UploadItemsSelectionPage.xaml.cs (the panel.SetBinding call using
Binding(nameof(UploadItemSelection.IsOverrite)) with
BoolToVisibilityInvertConverter) is leftover now that column-level visibility is
used; remove this commented block to avoid confusion (delete the three commented
lines referencing panel.SetBinding, the BoolToVisibilityInvertConverter usage,
and the IsOverrite binding) so the intent is clear and no stale code remains.
| // Encrypt API key on blur (AskLisa/VRT style) | ||
| xAPIKeyTextBox.ValueTextBox.LostKeyboardFocus += xAPIKeyTextBox_LostKeyboardFocus; | ||
|
|
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Consider unsubscribing the event handler to prevent potential memory leaks.
The LostKeyboardFocus event is subscribed but never unsubscribed. While likely acceptable for a long-lived configuration page, consider implementing IDisposable or unsubscribing in a cleanup method for consistency with best practices.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Ginger/Ginger/ExternalConfigurations/ApplitoolsExternalConfigurationsPage.xaml.cs`
around lines 56 - 58, The LostKeyboardFocus handler is subscribed on
xAPIKeyTextBox.ValueTextBox but never unsubscribed; update the
ApplitoolsExternalConfigurationsPage class to remove that subscription during
cleanup (e.g., implement IDisposable.Dispose or handle Unloaded) by calling
xAPIKeyTextBox.ValueTextBox.LostKeyboardFocus -=
xAPIKeyTextBox_LostKeyboardFocus, or detach in an OnUnloaded/cleanup method to
avoid potential memory leaks while keeping the existing
xAPIKeyTextBox_LostKeyboardFocus method intact.
| private void xAPIKeyTextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) | ||
| { | ||
| var textbox = xAPIKeyTextBox.ValueTextBox; | ||
| string current = textbox.Text; | ||
|
|
||
| // Do not encrypt value expressions (AskLisa rule) | ||
| if (ValueExpression.IsThisAValueExpression(current)) | ||
| return; | ||
|
|
||
| // Encrypt only if not already encrypted | ||
| if (!EncryptionHandler.IsStringEncrypted(current)) | ||
| { | ||
| textbox.Text = EncryptionHandler.EncryptwithKey(current); | ||
| } | ||
| } |
There was a problem hiding this comment.
Add null/whitespace check for consistency with the save handler.
The LostKeyboardFocus handler lacks the string.IsNullOrWhiteSpace check that exists in xSaveButton_Click (line 96). While EncryptString internally handles empty strings (returning them as-is), whitespace-only values would be encrypted here but skipped in the save handler, creating inconsistent behavior.
Proposed fix
private void xAPIKeyTextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
var textbox = xAPIKeyTextBox.ValueTextBox;
string current = textbox.Text;
+ // Skip if empty or whitespace
+ if (string.IsNullOrWhiteSpace(current))
+ return;
+
// Do not encrypt value expressions (AskLisa rule)
if (ValueExpression.IsThisAValueExpression(current))
return;
// Encrypt only if not already encrypted
if (!EncryptionHandler.IsStringEncrypted(current))
{
textbox.Text = EncryptionHandler.EncryptwithKey(current);
}
}
Based on learnings: "When validating API keys or similar sensitive configuration values... check for null, empty, or whitespace with string.IsNullOrWhiteSpace() rather than just string.IsNullOrEmpty()."
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| private void xAPIKeyTextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) | |
| { | |
| var textbox = xAPIKeyTextBox.ValueTextBox; | |
| string current = textbox.Text; | |
| // Do not encrypt value expressions (AskLisa rule) | |
| if (ValueExpression.IsThisAValueExpression(current)) | |
| return; | |
| // Encrypt only if not already encrypted | |
| if (!EncryptionHandler.IsStringEncrypted(current)) | |
| { | |
| textbox.Text = EncryptionHandler.EncryptwithKey(current); | |
| } | |
| } | |
| private void xAPIKeyTextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) | |
| { | |
| var textbox = xAPIKeyTextBox.ValueTextBox; | |
| string current = textbox.Text; | |
| // Skip if empty or whitespace | |
| if (string.IsNullOrWhiteSpace(current)) | |
| return; | |
| // Do not encrypt value expressions (AskLisa rule) | |
| if (ValueExpression.IsThisAValueExpression(current)) | |
| return; | |
| // Encrypt only if not already encrypted | |
| if (!EncryptionHandler.IsStringEncrypted(current)) | |
| { | |
| textbox.Text = EncryptionHandler.EncryptwithKey(current); | |
| } | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Ginger/Ginger/ExternalConfigurations/ApplitoolsExternalConfigurationsPage.xaml.cs`
around lines 61 - 75, Update the xAPIKeyTextBox_LostKeyboardFocus handler to
mirror the save handler by skipping encryption for null/empty/whitespace values:
before calling ValueExpression.IsThisAValueExpression(current) and
EncryptionHandler.IsStringEncrypted(current) add a guard using
string.IsNullOrWhiteSpace(current) to return early; keep existing checks for
value expressions (ValueExpression.IsThisAValueExpression) and only call
EncryptionHandler.EncryptwithKey when the string is non-whitespace and not
already encrypted, matching the behavior of xSaveButton_Click.
| private void RefreshFolderTreeView() | ||
| { | ||
| try | ||
| { | ||
| this.Dispatcher.Invoke(() => | ||
| { | ||
| if (xFolderTreeView != null && xFolderTreeView.Tree != null && xFolderTreeView.Tree.Items.Count > 0) | ||
| { | ||
| // Create a fresh tree root to avoid cached children | ||
| if (mFolderTreeRootFactory != null) | ||
| { | ||
| mFolderTreeRoot = mFolderTreeRootFactory(); | ||
| } | ||
|
|
||
| if (mFolderTreeRoot != null) | ||
| { | ||
| xFolderTreeView.ClearTreeItems(); | ||
| xFolderTreeView.AddItem(mFolderTreeRoot); | ||
| } | ||
| // Refresh all expanded nodes in the tree | ||
| RefreshExpandedTreeNodes(xFolderTreeView.Tree.Items[0] as TreeViewItem); | ||
| } | ||
| }); | ||
| } | ||
| catch (Exception ex) | ||
| { | ||
| Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree view", ex); | ||
| } | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if ITreeViewItem or tree item base classes have any cleanup/dispose methods
ast-grep --pattern $'interface ITreeViewItem {
$$$
}'
rg -n "RemoveHandler|Dispose|Cleanup|UnregisterEvents" --type cs -g "*TreeViewItem*.cs" -C2
Repository: Ginger-Automation/Ginger
Length of output: 2563
🏁 Script executed:
# Get full context of RefreshFolderTreeView method
cat -n Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs | sed -n '410,470p'
Repository: Ginger-Automation/Ginger
Length of output: 2819
🏁 Script executed:
# Check how mFolderTreeRoot is used and if there's cleanup before replacement
rg -n "mFolderTreeRoot" --type cs Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs -B2 -A2
Repository: Ginger-Automation/Ginger
Length of output: 2967
🏁 Script executed:
# Look at NewTreeViewItemBase to understand tree item lifecycle and disposal
cat -n Ginger/Ginger/SolutionWindows/TreeViewItems/NewTreeViewItemBase.cs | sed -n '560,600p'
Repository: Ginger-Automation/Ginger
Length of output: 2343
🏁 Script executed:
# Check if tree items implement IDisposable or have cleanup methods
rg -n "Dispose|~.*\(" --type cs Ginger/Ginger/SolutionWindows/TreeViewItems/NewTreeViewItemBase.cs
Repository: Ginger-Automation/Ginger
Length of output: 50
🏁 Script executed:
# Find ClearTreeItems implementation
rg -n "void ClearTreeItems|ClearTreeItems()" --type cs -A10
Repository: Ginger-Automation/Ginger
Length of output: 15877
🏁 Script executed:
# Check ITreeViewItem interface definition
rg -n "interface ITreeViewItem" --type cs -A20
Repository: Ginger-Automation/Ginger
Length of output: 1476
Memory leak: Old tree roots' event handlers not cleaned up.
When RefreshFolderTreeView creates a new tree root via mFolderTreeRootFactory() at line 438, the previous mFolderTreeRoot is discarded before calling xFolderTreeView.ClearTreeItems() (line 443). While ClearTreeItems() removes items from the WPF tree (via Tree.Items.Clear()), it does not clean up the CollectionChangedEventManager handlers that NewTreeViewItemBase.GetChildrentGeneric() attaches to repository collections (lines 578, 584). These handlers remain registered on the collections and will continue firing on the orphaned tree items, preventing garbage collection.
The ITreeViewItem interface lacks any cleanup or dispose mechanism. Implement explicit handler cleanup before replacing the tree root, or introduce a cleanup method on tree item implementations to unregister handlers.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs` around lines 427
- 455, RefreshFolderTreeView is replacing mFolderTreeRoot with a new instance
without unregistering CollectionChanged handlers attached by
NewTreeViewItemBase.GetChildrentGeneric, causing a memory leak; before you
overwrite mFolderTreeRoot (created by mFolderTreeRootFactory()) call a cleanup
API on the existing root to unregister those handlers. Add a cleanup method to
the tree item contract (e.g., ITreeViewItem.Dispose or
UnregisterRepositoryHandlers) and implement it in NewTreeViewItemBase to remove
any CollectionChangedEventManager registrations; then in RefreshFolderTreeView
call that cleanup on the old mFolderTreeRoot (and any expanded children if
necessary) prior to calling xFolderTreeView.ClearTreeItems() and replacing
mFolderTreeRoot.
| private void RefreshExpandedTreeNodes(TreeViewItem treeNode) | ||
| { | ||
| if (treeNode == null) | ||
| { | ||
| return; | ||
| } | ||
|
|
||
| if (treeNode.IsExpanded && treeNode.Items.Count > 0) | ||
| { | ||
| var firstChild = treeNode.Items[0] as TreeViewItem; | ||
| if (firstChild != null) | ||
| { | ||
| xFolderTreeView.RefreshTreeViewItemChildrens(treeNode); | ||
| } | ||
|
|
||
| // Recursively refreshing child nodes | ||
| var childItems = treeNode.Items.Cast<TreeViewItem>().ToList(); | ||
| foreach (var childNode in childItems) | ||
| { | ||
| RefreshExpandedTreeNodes(childNode); | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Potential issue: Casting items without null-check in loop.
Line 473 casts items to TreeViewItem and creates a list, but the cast may produce nulls for non-TreeViewItem elements. The subsequent foreach would then pass nulls to RefreshExpandedTreeNodes, which handles null at line 459, but this is inefficient.
♻️ Minor: Filter out nulls during cast
- var childItems = treeNode.Items.Cast<TreeViewItem>().ToList();
- foreach (var childNode in childItems)
+ foreach (var childNode in treeNode.Items.OfType<TreeViewItem>())
{
RefreshExpandedTreeNodes(childNode);
}
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| private void RefreshExpandedTreeNodes(TreeViewItem treeNode) | |
| { | |
| if (treeNode == null) | |
| { | |
| return; | |
| } | |
| if (treeNode.IsExpanded && treeNode.Items.Count > 0) | |
| { | |
| var firstChild = treeNode.Items[0] as TreeViewItem; | |
| if (firstChild != null) | |
| { | |
| xFolderTreeView.RefreshTreeViewItemChildrens(treeNode); | |
| } | |
| // Recursively refreshing child nodes | |
| var childItems = treeNode.Items.Cast<TreeViewItem>().ToList(); | |
| foreach (var childNode in childItems) | |
| { | |
| RefreshExpandedTreeNodes(childNode); | |
| } | |
| } | |
| } | |
| private void RefreshExpandedTreeNodes(TreeViewItem treeNode) | |
| { | |
| if (treeNode == null) | |
| { | |
| return; | |
| } | |
| if (treeNode.IsExpanded && treeNode.Items.Count > 0) | |
| { | |
| var firstChild = treeNode.Items[0] as TreeViewItem; | |
| if (firstChild != null) | |
| { | |
| xFolderTreeView.RefreshTreeViewItemChildrens(treeNode); | |
| } | |
| // Recursively refreshing child nodes | |
| foreach (var childNode in treeNode.Items.OfType<TreeViewItem>()) | |
| { | |
| RefreshExpandedTreeNodes(childNode); | |
| } | |
| } | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs` around lines 457
- 479, The loop in RefreshExpandedTreeNodes casts treeNode.Items to TreeViewItem
which can yield nulls for non-TreeViewItem entries; instead filter out nulls
before iterating (e.g., use Items.OfType<TreeViewItem>() or a null-check) so you
only call RefreshExpandedTreeNodes on actual TreeViewItem instances and avoid
creating a list with nulls; keep existing null guard at top and retain the
xFolderTreeView.RefreshTreeViewItemChildrens(treeNode) call for the firstChild
logic.
| using Amdocs.Ginger.Common; | ||
| using Amdocs.Ginger.Repository; | ||
| using GingerCore.DataSource; | ||
| using LiteDB; |
There was a problem hiding this comment.
Unused import LiteDB.
The using LiteDB; directive appears unused in this file. No LiteDB types are referenced. Consider removing it to keep imports clean.
Proposed fix
-using LiteDB;
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| using LiteDB; |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs` at line 22, The
using directive "using LiteDB;" in ExportToExcelConfig.cs is unused; remove that
import from the top of the file (in the ExportToExcelConfig class/file) to clean
up unnecessary references and ensure no unused namespace remains; if the LiteDB
types are intended to be used later, instead add the necessary type references
where needed or keep the import only when used.
| Source: "D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net10.0-windows10.0.17763.0\Ginger.exe"; DestDir: "{app}"; Flags: ignoreversion; BeforeInstall:DetectAndInstallPrerequisites; | ||
| Source: "D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net10.0-windows10.0.17763.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; | ||
| Source: "D:\a\Ginger\Ginger\Extensions\DotnetDependencies\netcorecheck_x64.exe"; Flags: dontcopy deleteafterinstall noencryption | ||
| Source: "D:\a\Ginger\Ginger\Extensions\DotnetDependencies\windowsdesktop-runtime-8.0.22-win-x64.exe"; DestDir: {tmp}; Flags: dontcopy deleteafterinstall noencryption; | ||
| Source: "D:\a\Ginger\Ginger\Extensions\DotnetDependencies\aspnetcore-runtime-8.0.22-win-x64.exe"; DestDir: {tmp}; Flags: dontcopy deleteafterinstall noencryption; | ||
| Source: "D:\a\Ginger\Ginger\Extensions\DotnetDependencies\windowsdesktop-runtime-10.0.3-win-x64.exe"; DestDir: {tmp}; Flags: dontcopy deleteafterinstall noencryption; | ||
| Source: "D:\a\Ginger\Ginger\Extensions\DotnetDependencies\aspnetcore-runtime-10.0.3-win-x64.exe"; DestDir: {tmp}; Flags: dontcopy deleteafterinstall noencryption; |
There was a problem hiding this comment.
Critical: Runtime version mismatch between bundled files and installation logic.
The [Files] section correctly bundles .NET 10.0.3 runtime installers, but the DetectAndInstallPrerequisites procedure (lines 112-136) still references .NET 8.0.22. This will cause installation failures because:
ExtractTemporaryFile('windowsdesktop-runtime-8.0.22-win-x64.exe')will fail since only the 10.0.3 version is bundled- Even if extraction succeeded, the wrong runtime version would be installed for a .NET 10.0 application
The GitHub CI variant (GingerInstallerScriptGithub.iss) has this correctly updated to 10.0.3 in both locations.
🐛 Proposed fix to update DetectAndInstallPrerequisites
- If not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 8.0.22') then
+ If not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 10.0.3') then
begin
- WizardForm.StatusLabel.Caption := 'Installing Microsoft.WindowsDesktop.App Runtime 8.0.22...';
- if not FileExists(ExpandConstant('{tmp}\windowsdesktop-runtime-8.0.22-win-x64.exe')) then begin
- ExtractTemporaryFile('windowsdesktop-runtime-8.0.22-win-x64.exe');
+ WizardForm.StatusLabel.Caption := 'Installing Microsoft.WindowsDesktop.App Runtime 10.0.3...';
+ if not FileExists(ExpandConstant('{tmp}\windowsdesktop-runtime-10.0.3-win-x64.exe')) then begin
+ ExtractTemporaryFile('windowsdesktop-runtime-10.0.3-win-x64.exe');
end;
- if not Exec(ExpandConstant('{tmp}\windowsdesktop-runtime-8.0.22-win-x64.exe'), '/q /norestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
+ if not Exec(ExpandConstant('{tmp}\windowsdesktop-runtime-10.0.3-win-x64.exe'), '/q /norestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
begin
{ you can interact with the user that the installation failed }
- MsgBox('.NET Desktop runtime 8.0.22 installation failed with code: ' + IntToStr(ResultCode) + '. Please install it manually.',
+ MsgBox('.NET Desktop runtime 10.0.3 installation failed with code: ' + IntToStr(ResultCode) + '. Please install it manually.',
mbError, MB_OK);
end;
end;
- If not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 8.0.22') then
+ If not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 10.0.3') then
begin
- WizardForm.StatusLabel.Caption := 'Installing Microsoft.AspNetCore.App Runtime 8.0.22...';
- if not FileExists(ExpandConstant('{tmp}\aspnetcore-runtime-8.0.22-win-x64.exe')) then begin
- ExtractTemporaryFile('aspnetcore-runtime-8.0.22-win-x64.exe');
+ WizardForm.StatusLabel.Caption := 'Installing Microsoft.AspNetCore.App Runtime 10.0.3...';
+ if not FileExists(ExpandConstant('{tmp}\aspnetcore-runtime-10.0.3-win-x64.exe')) then begin
+ ExtractTemporaryFile('aspnetcore-runtime-10.0.3-win-x64.exe');
end;
- if not Exec(ExpandConstant('{tmp}\aspnetcore-runtime-8.0.22-win-x64.exe'), '/q /norestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
+ if not Exec(ExpandConstant('{tmp}\aspnetcore-runtime-10.0.3-win-x64.exe'), '/q /norestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
begin
{ you can interact with the user that the installation failed }
- MsgBox('.NET ASP Net Core 8.0.22 installation failed with code: ' + IntToStr(ResultCode) + '. Please install it manually.',
+ MsgBox('.NET ASP Net Core 10.0.3 installation failed with code: ' + IntToStr(ResultCode) + '. Please install it manually.',
mbError, MB_OK);
end;
end;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/GingerInstallerScript.iss` around lines 48 - 52, The
DetectAndInstallPrerequisites procedure still references the old .NET runtime
names; update all occurrences inside DetectAndInstallPrerequisites (and any
calls it makes) to match the bundled installer filenames and versions (e.g.,
replace windowsdesktop-runtime-8.0.22-win-x64.exe and
aspnetcore-runtime-8.0.22-win-x64.exe with
windowsdesktop-runtime-10.0.3-win-x64.exe and
aspnetcore-runtime-10.0.3-win-x64.exe) and ensure calls to ExtractTemporaryFile
and Exec or ShellExec use those exact 10.0.3 names so extraction and install
steps match the [Files] entries and the .NET 10 runtime is installed.
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs (1)
145-195:⚠️ Potential issue | 🟠 MajorBuild
ANDfrom emitted predicates, not fromi.After the new
continue,i > 0no longer means that a previous predicate was added. If the first item is skipped and the second is valid, this returns... where AND ...; an unhandled operator can also leave a danglingAND. Collect non-empty predicates and join them once at the end.Possible fix
- string whereClause = ""; + var predicates = new List<string>(); @@ - if (i > 0) - whereClause += " AND "; - whereClause += predicate; + if (!string.IsNullOrWhiteSpace(predicate)) + { + predicates.Add(predicate); + } } + string whereClause = string.Join(" AND ", predicates); if (string.IsNullOrWhiteSpace(whereClause))🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs` around lines 145 - 195, The loop that builds whereClause uses the loop index (i) to insert " AND ", which is wrong after the added continue; instead collect non-empty predicates into a List<string> (e.g., predicates) inside the loop (after computing predicate for each item and skipping when predicate is empty), then after the loop do whereClause = string.Join(" AND ", predicates); keep the existing validation of item.TableColumn/item.RowValue and the operator switch (item.Opertor), and if predicates is empty return columnList as before; replace all uses of i-based concatenation with the join.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs`:
- Around line 139-143: The early-return in ExportToExcelConfig when
whereConditionList is null/empty currently returns only columnList, breaking the
expected return shape consumers rely on (ActDSTableElement ->
DataSource.ExporttoExcel and LiteDB's custom projection logic). Change the
method (ExportToExcelConfig) so that when there are no conditions it still
returns the same projection-shaped object/structure the callers expect (e.g., a
projection object/tuple that contains columnList plus an explicit empty/no-op
projection flag or collection) rather than returning raw columnList; ensure
callers in DataSource.ExporttoExcel and LiteDB continue to detect “no filters”
via that projection shape instead of relying on a null/Count check.
- Around line 154-156: The current check in ExportToExcelConfig.cs that skips
items when string.IsNullOrEmpty(item.TableColumn) ||
string.IsNullOrEmpty(item.RowValue) removes valid IsNull/IsNotNull predicates;
update the filtering logic to allow items whose operator indicates a null-check
even if RowValue is null/empty: detect the operator (as defined in
ActDSConditon, e.g. IsNull/IsNotNull) on the item and only skip when TableColumn
is empty or when RowValue is required by the operator; also ensure the
predicate-emission switch (the block around the current 159-186 region)
generates the correct SQL/DSL clauses for IsNull and IsNotNull instead of
silently dropping them.
---
Outside diff comments:
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs`:
- Around line 145-195: The loop that builds whereClause uses the loop index (i)
to insert " AND ", which is wrong after the added continue; instead collect
non-empty predicates into a List<string> (e.g., predicates) inside the loop
(after computing predicate for each item and skipping when predicate is empty),
then after the loop do whereClause = string.Join(" AND ", predicates); keep the
existing validation of item.TableColumn/item.RowValue and the operator switch
(item.Opertor), and if predicates is empty return columnList as before; replace
all uses of i-based concatenation with the join.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: e4c519b2-d55c-4b0c-9304-4ed12b8ac74d
📒 Files selected for processing (1)
Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs
| // PR Change: Return early when no conditions | ||
| if (whereConditionList == null || whereConditionList.Count == 0) | ||
| { | ||
| return columnList; | ||
| } |
There was a problem hiding this comment.
Don't change the no-filter return shape without updating the consumers.
Line 142 and Line 193 now return only columnList. Ginger/GingerCoreNET/DataSource/ActDSTableElement.cs:218-229 feeds that straight into DataSource.ExporttoExcel(), and Ginger/GingerCoreNET/DataSource/LiteDB.cs:229-248 only applies the custom projection inside the " where " branch. With this change, an empty condition list—or one where every item is skipped—falls back to exporting the full table instead of the requested custom selection.
Also applies to: 191-195
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs` around lines 139
- 143, The early-return in ExportToExcelConfig when whereConditionList is
null/empty currently returns only columnList, breaking the expected return shape
consumers rely on (ActDSTableElement -> DataSource.ExporttoExcel and LiteDB's
custom projection logic). Change the method (ExportToExcelConfig) so that when
there are no conditions it still returns the same projection-shaped
object/structure the callers expect (e.g., a projection object/tuple that
contains columnList plus an explicit empty/no-op projection flag or collection)
rather than returning raw columnList; ensure callers in DataSource.ExporttoExcel
and LiteDB continue to detect “no filters” via that projection shape instead of
relying on a null/Count check.
| // PR change: skip invalid items | ||
| if (string.IsNullOrEmpty(item.TableColumn) || string.IsNullOrEmpty(item.RowValue)) | ||
| continue; |
There was a problem hiding this comment.
IsNull and IsNotNull are still impossible to serialize here.
Ginger/GingerCoreCommon/DataBaseLib/ActDSConditon.cs:63-65 defines both operators, but Line 155 drops them because RowValue is expected to be non-empty, and the switch never emits predicates for them anyway. Any null-check filter now silently disappears from the generated query.
Possible fix
- if (string.IsNullOrEmpty(item.TableColumn) || string.IsNullOrEmpty(item.RowValue))
+ if (string.IsNullOrEmpty(item.TableColumn) ||
+ ((item.Opertor != "IsNull" && item.Opertor != "IsNotNull") && string.IsNullOrEmpty(item.RowValue)))
continue;
@@
+ case "IsNull":
+ predicate = $"{item.TableColumn} Is Null";
+ break;
+ case "IsNotNull":
+ predicate = $"{item.TableColumn} Is Not Null";
+ break;
Also applies to: 159-186
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/GingerCoreCommon/DataBaseLib/ExportToExcelConfig.cs` around lines 154
- 156, The current check in ExportToExcelConfig.cs that skips items when
string.IsNullOrEmpty(item.TableColumn) || string.IsNullOrEmpty(item.RowValue)
removes valid IsNull/IsNotNull predicates; update the filtering logic to allow
items whose operator indicates a null-check even if RowValue is null/empty:
detect the operator (as defined in ActDSConditon, e.g. IsNull/IsNotNull) on the
item and only skip when TableColumn is empty or when RowValue is required by the
operator; also ensure the predicate-emission switch (the block around the
current 159-186 region) generates the correct SQL/DSL clauses for IsNull and
IsNotNull instead of silently dropping them.
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs (2)
1268-1273:⚠️ Potential issue | 🟡 MinorDispose the cancelled tree-search token source on clear.
This path only calls
Cancel(). Repeated clear operations leave the previousCancellationTokenSourcealive until some later search/dispose path happens. Mirror the other search flows and dispose/null it here too.♻️ Proposed fix
if (mFolderViewActive) { // clear tree filter to show all mTreeSearchCts?.Cancel(); + mTreeSearchCts?.Dispose(); + mTreeSearchCts = null; xFolderTreeView.FilterItemsByText(xFolderTreeView.TreeItemsCollection, string.Empty); }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs` around lines 1268 - 1273, The clear path when mFolderViewActive only calls mTreeSearchCts?.Cancel(), leaving the CancellationTokenSource undisposed; update the block handling folder clears so after calling mTreeSearchCts?.Cancel() you also call mTreeSearchCts?.Dispose() and then set mTreeSearchCts = null (mirror other search flows), ensuring you reference the same mTreeSearchCts symbol and keep the existing xFolderTreeView.FilterItemsByText(...) call unchanged.
410-420:⚠️ Potential issue | 🟠 MajorHandle
NotifyCollectionChangedAction.Resetas a full folder-tree rebuild.
ObservableCollection.Clear()and some bulk refresh paths raiseReset, notRemove. In those cases this branch skipsRefreshFolderTreeView(), so the hidden folder tree can keep stale nodes until a later incremental change arrives. IncludeResetin the rebuild condition.♻️ Proposed fix
- if (e.Action is NotifyCollectionChangedAction.Add or - NotifyCollectionChangedAction.Replace or - NotifyCollectionChangedAction.Remove or - NotifyCollectionChangedAction.Move) + if (e.Action is NotifyCollectionChangedAction.Add or + NotifyCollectionChangedAction.Replace or + NotifyCollectionChangedAction.Remove or + NotifyCollectionChangedAction.Move or + NotifyCollectionChangedAction.Reset) { OnUcListViewEvent(UcListViewEventArgs.eEventType.UpdateIndex); // Refresh folder tree view when items are added/removed/modified if (mFolderTreeRoot != null && xFolderTreeView != null)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs` around lines 410 - 420, The collection-changed branch currently only handles Add/Replace/Remove/Move so Reset notifications (raised by ObservableCollection.Clear() or bulk refreshes) skip RefreshFolderTreeView and leave the folder tree stale; update the conditional that checks e.Action (the NotifyCollectionChangedAction) to also include NotifyCollectionChangedAction.Reset so that when mFolderTreeRoot != null and xFolderTreeView != null the code calls RefreshFolderTreeView() (while still invoking OnUcListViewEvent(UcListViewEventArgs.eEventType.UpdateIndex) as before).
♻️ Duplicate comments (1)
Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs (1)
436-444:⚠️ Potential issue | 🟠 MajorClean up the previous tree root before overwriting it.
This still swaps
mFolderTreeRootfor a fresh instance without any teardown of the old root/children. Clearing the WPF items does not unregister handlers owned by the discarded tree items, so orphaned nodes can stay alive and keep reacting to repository changes. The same replacement pattern also exists in the other new factory paths.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs` around lines 436 - 444, Before replacing mFolderTreeRoot (created via mFolderTreeRootFactory) call its cleanup/teardown routine and unregister any event handlers on the existing tree nodes so they don't remain alive; specifically, if mFolderTreeRoot is non-null, invoke its Dispose/Unregister/Teardown method (or walk its children to detach handlers) and then clear xFolderTreeView items before assigning a new instance and calling xFolderTreeView.AddItem; apply the same teardown step to the other factory-based replacement paths that assign to mFolderTreeRoot to ensure previous roots are fully torn down.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs`:
- Around line 451-453: The catch block in UcListView.xaml.cs currently calls
Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree view", ex);
update it to use the repo-standard signature by removing the exception argument
and calling Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree
view") instead (keep this change inside the same catch in the method where the
folder tree refresh is handled).
---
Outside diff comments:
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs`:
- Around line 1268-1273: The clear path when mFolderViewActive only calls
mTreeSearchCts?.Cancel(), leaving the CancellationTokenSource undisposed; update
the block handling folder clears so after calling mTreeSearchCts?.Cancel() you
also call mTreeSearchCts?.Dispose() and then set mTreeSearchCts = null (mirror
other search flows), ensuring you reference the same mTreeSearchCts symbol and
keep the existing xFolderTreeView.FilterItemsByText(...) call unchanged.
- Around line 410-420: The collection-changed branch currently only handles
Add/Replace/Remove/Move so Reset notifications (raised by
ObservableCollection.Clear() or bulk refreshes) skip RefreshFolderTreeView and
leave the folder tree stale; update the conditional that checks e.Action (the
NotifyCollectionChangedAction) to also include
NotifyCollectionChangedAction.Reset so that when mFolderTreeRoot != null and
xFolderTreeView != null the code calls RefreshFolderTreeView() (while still
invoking OnUcListViewEvent(UcListViewEventArgs.eEventType.UpdateIndex) as
before).
---
Duplicate comments:
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs`:
- Around line 436-444: Before replacing mFolderTreeRoot (created via
mFolderTreeRootFactory) call its cleanup/teardown routine and unregister any
event handlers on the existing tree nodes so they don't remain alive;
specifically, if mFolderTreeRoot is non-null, invoke its
Dispose/Unregister/Teardown method (or walk its children to detach handlers) and
then clear xFolderTreeView items before assigning a new instance and calling
xFolderTreeView.AddItem; apply the same teardown step to the other factory-based
replacement paths that assign to mFolderTreeRoot to ensure previous roots are
fully torn down.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6723b70b-fc49-4a97-b05c-1202e4ab70f4
📒 Files selected for processing (1)
Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs
| catch (Exception ex) | ||
| { | ||
| Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree view", ex); |
There was a problem hiding this comment.
Use the repo’s standard error logging signature here.
The new catch block logs with the overload that includes ex. This repository’s C# guideline calls for Reporter.ToLog(eLogLevel.ERROR, message) for error logs.
📝 Proposed fix
- Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree view", ex);
+ Reporter.ToLog(eLogLevel.ERROR, $"Failed to refresh folder tree view: {ex}");
As per coding guidelines **/*.cs: Use Reporter.ToLog(eLogLevel.ERROR, message) for logging errors.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| catch (Exception ex) | |
| { | |
| Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree view", ex); | |
| catch (Exception ex) | |
| { | |
| Reporter.ToLog(eLogLevel.ERROR, $"Failed to refresh folder tree view: {ex}"); | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Ginger/Ginger/UserControlsLib/UCListView/UcListView.xaml.cs` around lines 451
- 453, The catch block in UcListView.xaml.cs currently calls
Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree view", ex);
update it to use the repo-standard signature by removing the exception argument
and calling Reporter.ToLog(eLogLevel.ERROR, "Failed to refresh folder tree
view") instead (keep this change inside the same catch in the method where the
folder tree refresh is handled).
* Update codeql-analysis.yml * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * Master for beta merge (#4429) * Merge master into beta (#4418) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Feature/uft lab phone selection (#4414) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * added an api call to fetch the current devices in the UFT Mobile Agent configurations * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * added a button to see the phones when selecting utf device and select from the list * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * tested and fixed all edge cases of the device selection (wrong or empty fields and switching platform) * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * fixed uft devices button * fixed the design and made a filtering for the phone list * fixed phone lab filtering system * Removed the task implementation in unix agent * changed UI from rejects raised * updated the ui design --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * fixed defect number 58085 (#4411) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * added the status code number in the json and the output of the rest api call * Rename status code parameter for clarity * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Update version numbers in GingerCoreCommon.csproj * Feature/android tv automation support (#4413) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Add Android TV support and enhance platform handling Enhanced platform support by introducing Android TV as a new platform type (`ePlatformType.AndroidTV`) alongside Mobile and iOS. Updated platform descriptions to include "Mobile/TV" for better clarity and added new image types for visual representation. UI components now display friendly platform descriptions and improved tooltips. Added ComboBox support for enum descriptions in grids. Extended the Appium driver to support Android TV with specific capabilities, configurations. Improved error handling and fallback mechanisms for driver initialization. Updated `ActMobileDevice` to include Android TV-specific actions and defaulted action descriptions to "Mobile/Tv Device Action." Enhanced `DeviceViewPage` to handle Android TV resolutions and scaling. Added dynamic screen size calculations with fallbacks for Android TV. Updated agent configurations to include Android TV as a selectable driver type and set default configurations for Android TV agents. Refactored code for better maintainability, improved exception handling, and consolidated driver configuration logic. Added new image resources for Android TV. Improved `GenericAppiumDriver` to handle Android TV-specific scenarios, including focused element detection and screenshot scaling. * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * enhancement relted android TV - livespy * enhancement related to android TV * Refactor and enhance platform-specific logic Refactored multiple methods across the codebase to improve maintainability, performance, and platform-specific functionality. Key changes include: - Simplified `timenow` method in `PomAllElementsPage.xaml.cs` with improved user feedback and streamlined logic. - Enhanced `BitmapToBase64` in `PomLearnUtils.cs` with null-checks, fallback mechanisms, and better error handling. - Removed redundant methods `LoadGingerLiveSpyScript` and `GetFocusedElementInfo` in `GenericAppiumDriver.cs`. - Refactored `SimulatePhotoOrBarcode` to update `GingerLiveSpy.js` handling. - Added platform-specific logic for `HighLightElement`, `GetElementAtMousePosition`, `FindElementXmlNodeByXY`, `GetElementAtPoint`, and `GetPointOnAppWindow` in `GenericAppiumDriver.cs` to support Android TV, Android (mobile), iOS, and Web. - Improved shadow DOM support and optimized event handling in `GingerLiveSpy.js`. - Enhanced error handling, logging, and fallback mechanisms across the codebase. These changes improve cross-platform compatibility, user experience, and code maintainability. * Refactor and improve code readability and performance Refactored `ResizeDeviceButtons` and `GetDevicePoint` methods in `DeviceViewPage.xaml.cs` to simplify logic, remove redundant checks, and improve maintainability. Updated `eDeviceSource` enum in `MobileDriverCommon.cs` by removing `LambdaTest` and reassigning `AndroidTV`. Replaced the license header in `GingerLiveSpy.js` with an updated Apache License 2.0 notice. Added a new `ElementFromPoint` method to determine the deepest DOM element at a specific point. Refactored driver configuration logic in `AgentOperations.cs` to improve readability, simplify `DriverConfigParam` processing, enhance error handling, and remove duplicate code. Introduced a new `InitDriverConfigs` method for better organization. --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: tanushah <[email protected]> * Enhancement/shared repository folder view2 (#4419) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * folder view fix * merge conflict resolved * merge conflict resolved * enahcnement * code rabbit comments handled --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Improve Sikuli SetValue handling and focus logic (#4420) Refactored SetValue to check for empty text before typing and use KeyModifier.NONE for normal input. Now sets an error if the value is empty. Also, SetFocusToSelectedApplicationInstance is now called synchronously instead of asynchronously. * Exclamation mark fix (#4421) * Exclamation mark fix * commit * Improve circular reference handling in JSON schema tools (#4422) Enhanced detection and prevention of circular references and stack overflows in JSON schema-to-object generation. Added try-catch blocks for safer property access, improved stack management, and more robust array/property traversal. Also improved error handling when adding API models to repository folders by logging and fallback to parent folder if needed. * Add tests for circular refs in JsonSchemaFaker, update count (#4423) Add unit tests to SwaggetTests.cs to ensure JsonSchemaFaker handles circular and self-referencing JSON schemas without infinite loops or errors. Import NJsonSchema for schema support. Update assertion for "Add a new pet to the store-JSON" to expect 7 return values instead of 8. * Handled set DS value issue (#4425) * add to BF iicon removal (#4426) * add to BF iicon removal * uncommented code * code rabbit suggestion --------- Co-authored-by: Ravi Kumar <[email protected]> * resolved conflicts * resolved conflicts --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> * Prevent Excel formula injection in CSV export (#4431) * Prevent Excel formula injection in CSV export D56006_Added logic to prefix values starting with '=', '+', '-', or '@' with a single quote when exporting BusinessFlow, Activity, Act description, and input parameters to CSV. This ensures spreadsheet applications treat these fields as plain text, preventing misinterpretation as formulas. Also refactored code for clarity using intermediate variables. * Refactor CSV export for clarity and null safety Renamed method parameters and loop variables for clarity and consistency. Updated references to use descriptive names. Added null check for act.Description to prevent exceptions. Improves code readability and robustness. --------- Co-authored-by: tanushah <[email protected]> * added an option to change text color in consoleDriver window * Action Description fix (#4434) * Update to .NET 10, package versions, and minor UI tweaks (#4435) * Update to .NET 10, package versions, and minor UI tweaks Upgraded all projects from .NET 8.0 to .NET 10.0. Updated System.Text.Json to 10.0.2 and System.Drawing.Common to 10.0.2. Added Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Tokens (8.15.0) to support JWT features. Bumped protobuf-net packages to 3.2.56. Improved XAML grid layout in DataSourceExportToExcelPage.xaml and added DesignerSerializationVisibility attributes in SnippingTool.cs. No functional logic changes. * upgrade dotnet version to 10 * push supported dotnet version for Github actions * Fix Dotnet version on Test stage * Fix CLI TestsGithub * Fix Test Dotnet Framework of Github with new version of dotnet * nuget packages updation * Downgrade EPPlus and Excel Interop, update dependencies Downgraded EPPlus to 6.0.4 and Microsoft.Office.Interop.Excel to 15.0.4795.1001 across multiple projects for compatibility. Removed Microsoft.IdentityModel.* and System.IdentityModel.Tokens.Jwt from core projects, and removed SixLabors.ImageSharp from GingerCoreNET. Reformatted System.Globalization entry in GingerCore. These changes address dependency and compatibility issues. --------- Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Mask API key in UI and update only on user edit (#4436) * Mask API key in UI and update only on user edit Added masking for API key in VRTExternalConfigurationsPage to prevent exposure. The real key is hidden with a generic mask, and only updated if the user changes the field. Existing key is preserved unless explicitly edited. * Addition of validation * updated validation * updated validation rule --------- Co-authored-by: tanushah <[email protected]> * Fix codeql-config.yml file place * Upgrade Github Actions versions * Update license headers to 2026 and add missing headers (#4440) Updated the copyright year in all license headers from 2014-2025 to 2014-2026 across the codebase. Added the standard license header to several files that were previously missing it. No functional code changes were made. Co-authored-by: tanushah <[email protected]> * Register serializer classes earlier; null check in IsReady (#4441) Ensure MyRepositoryItem is registered with the serializer before test solution creation in SolutionRepositoryMultiThreadTest. Remove redundant registration call. Add null check to IsReady property in GingerSocket2Test to prevent possible NullReferenceException. * Downgrade LibGit2Sharp.NativeBinaries to 2.0.278 (#4442) Updated GingerCore.csproj and GingerCoreNET.csproj to use LibGit2Sharp.NativeBinaries version 2.0.278 instead of 2.0.323. No other changes were made. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated the SSH and Cryptography nuget package to latest (#4432) Co-authored-by: Ravi Kumar <[email protected]> * contract update for pipeline run description (#4437) Co-authored-by: Ravi Kumar <[email protected]> * Added Code to allow Solution File to be loaded using SolutionRepository and changed version to 2026.3 (#4443) Co-authored-by: Mayur Rathi <[email protected]> * Refactor export query generation and persistence logic (#4447) Rewrite CreateQueryWithWhereList to use LINQ for column selection, simplify WHERE clause construction with a switch statement, and return queries in the expected format. Update DataSourceExportToExcelPage to persist ExportQueryValue for both action and non-action table elements. Clean up code and improve maintainability. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated to latest version of Magick.NET nuget due to vulnarability detected by Dependebot Github Security scan alert (#4451) (#4455) Co-authored-by: Mayur Rathi <[email protected]> * Merge 2026.3 to master (#4457) * Merge master to official branch (#4444) * Update codeql-analysis.yml * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * Master for beta merge (#4429) * Merge master into beta (#4418) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Feature/uft lab phone selection (#4414) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * added an api call to fetch the current devices in the UFT Mobile Agent configurations * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * added a button to see the phones when selecting utf device and select from the list * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * tested and fixed all edge cases of the device selection (wrong or empty fields and switching platform) * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * fixed uft devices button * fixed the design and made a filtering for the phone list * fixed phone lab filtering system * Removed the task implementation in unix agent * changed UI from rejects raised * updated the ui design --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * fixed defect number 58085 (#4411) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * added the status code number in the json and the output of the rest api call * Rename status code parameter for clarity * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Update version numbers in GingerCoreCommon.csproj * Feature/android tv automation support (#4413) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Add Android TV support and enhance platform handling Enhanced platform support by introducing Android TV as a new platform type (`ePlatformType.AndroidTV`) alongside Mobile and iOS. Updated platform descriptions to include "Mobile/TV" for better clarity and added new image types for visual representation. UI components now display friendly platform descriptions and improved tooltips. Added ComboBox support for enum descriptions in grids. Extended the Appium driver to support Android TV with specific capabilities, configurations. Improved error handling and fallback mechanisms for driver initialization. Updated `ActMobileDevice` to include Android TV-specific actions and defaulted action descriptions to "Mobile/Tv Device Action." Enhanced `DeviceViewPage` to handle Android TV resolutions and scaling. Added dynamic screen size calculations with fallbacks for Android TV. Updated agent configurations to include Android TV as a selectable driver type and set default configurations for Android TV agents. Refactored code for better maintainability, improved exception handling, and consolidated driver configuration logic. Added new image resources for Android TV. Improved `GenericAppiumDriver` to handle Android TV-specific scenarios, including focused element detection and screenshot scaling. * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * enhancement relted android TV - livespy * enhancement related to android TV * Refactor and enhance platform-specific logic Refactored multiple methods across the codebase to improve maintainability, performance, and platform-specific functionality. Key changes include: - Simplified `timenow` method in `PomAllElementsPage.xaml.cs` with improved user feedback and streamlined logic. - Enhanced `BitmapToBase64` in `PomLearnUtils.cs` with null-checks, fallback mechanisms, and better error handling. - Removed redundant methods `LoadGingerLiveSpyScript` and `GetFocusedElementInfo` in `GenericAppiumDriver.cs`. - Refactored `SimulatePhotoOrBarcode` to update `GingerLiveSpy.js` handling. - Added platform-specific logic for `HighLightElement`, `GetElementAtMousePosition`, `FindElementXmlNodeByXY`, `GetElementAtPoint`, and `GetPointOnAppWindow` in `GenericAppiumDriver.cs` to support Android TV, Android (mobile), iOS, and Web. - Improved shadow DOM support and optimized event handling in `GingerLiveSpy.js`. - Enhanced error handling, logging, and fallback mechanisms across the codebase. These changes improve cross-platform compatibility, user experience, and code maintainability. * Refactor and improve code readability and performance Refactored `ResizeDeviceButtons` and `GetDevicePoint` methods in `DeviceViewPage.xaml.cs` to simplify logic, remove redundant checks, and improve maintainability. Updated `eDeviceSource` enum in `MobileDriverCommon.cs` by removing `LambdaTest` and reassigning `AndroidTV`. Replaced the license header in `GingerLiveSpy.js` with an updated Apache License 2.0 notice. Added a new `ElementFromPoint` method to determine the deepest DOM element at a specific point. Refactored driver configuration logic in `AgentOperations.cs` to improve readability, simplify `DriverConfigParam` processing, enhance error handling, and remove duplicate code. Introduced a new `InitDriverConfigs` method for better organization. --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: tanushah <[email protected]> * Enhancement/shared repository folder view2 (#4419) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * folder view fix * merge conflict resolved * merge conflict resolved * enahcnement * code rabbit comments handled --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Improve Sikuli SetValue handling and focus logic (#4420) Refactored SetValue to check for empty text before typing and use KeyModifier.NONE for normal input. Now sets an error if the value is empty. Also, SetFocusToSelectedApplicationInstance is now called synchronously instead of asynchronously. * Exclamation mark fix (#4421) * Exclamation mark fix * commit * Improve circular reference handling in JSON schema tools (#4422) Enhanced detection and prevention of circular references and stack overflows in JSON schema-to-object generation. Added try-catch blocks for safer property access, improved stack management, and more robust array/property traversal. Also improved error handling when adding API models to repository folders by logging and fallback to parent folder if needed. * Add tests for circular refs in JsonSchemaFaker, update count (#4423) Add unit tests to SwaggetTests.cs to ensure JsonSchemaFaker handles circular and self-referencing JSON schemas without infinite loops or errors. Import NJsonSchema for schema support. Update assertion for "Add a new pet to the store-JSON" to expect 7 return values instead of 8. * Handled set DS value issue (#4425) * add to BF iicon removal (#4426) * add to BF iicon removal * uncommented code * code rabbit suggestion --------- Co-authored-by: Ravi Kumar <[email protected]> * resolved conflicts * resolved conflicts --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> * Prevent Excel formula injection in CSV export (#4431) * Prevent Excel formula injection in CSV export D56006_Added logic to prefix values starting with '=', '+', '-', or '@' with a single quote when exporting BusinessFlow, Activity, Act description, and input parameters to CSV. This ensures spreadsheet applications treat these fields as plain text, preventing misinterpretation as formulas. Also refactored code for clarity using intermediate variables. * Refactor CSV export for clarity and null safety Renamed method parameters and loop variables for clarity and consistency. Updated references to use descriptive names. Added null check for act.Description to prevent exceptions. Improves code readability and robustness. --------- Co-authored-by: tanushah <[email protected]> * added an option to change text color in consoleDriver window * Action Description fix (#4434) * Update to .NET 10, package versions, and minor UI tweaks (#4435) * Update to .NET 10, package versions, and minor UI tweaks Upgraded all projects from .NET 8.0 to .NET 10.0. Updated System.Text.Json to 10.0.2 and System.Drawing.Common to 10.0.2. Added Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Tokens (8.15.0) to support JWT features. Bumped protobuf-net packages to 3.2.56. Improved XAML grid layout in DataSourceExportToExcelPage.xaml and added DesignerSerializationVisibility attributes in SnippingTool.cs. No functional logic changes. * upgrade dotnet version to 10 * push supported dotnet version for Github actions * Fix Dotnet version on Test stage * Fix CLI TestsGithub * Fix Test Dotnet Framework of Github with new version of dotnet * nuget packages updation * Downgrade EPPlus and Excel Interop, update dependencies Downgraded EPPlus to 6.0.4 and Microsoft.Office.Interop.Excel to 15.0.4795.1001 across multiple projects for compatibility. Removed Microsoft.IdentityModel.* and System.IdentityModel.Tokens.Jwt from core projects, and removed SixLabors.ImageSharp from GingerCoreNET. Reformatted System.Globalization entry in GingerCore. These changes address dependency and compatibility issues. --------- Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Mask API key in UI and update only on user edit (#4436) * Mask API key in UI and update only on user edit Added masking for API key in VRTExternalConfigurationsPage to prevent exposure. The real key is hidden with a generic mask, and only updated if the user changes the field. Existing key is preserved unless explicitly edited. * Addition of validation * updated validation * updated validation rule --------- Co-authored-by: tanushah <[email protected]> * Fix codeql-config.yml file place * Upgrade Github Actions versions * Update license headers to 2026 and add missing headers (#4440) Updated the copyright year in all license headers from 2014-2025 to 2014-2026 across the codebase. Added the standard license header to several files that were previously missing it. No functional code changes were made. Co-authored-by: tanushah <[email protected]> * Register serializer classes earlier; null check in IsReady (#4441) Ensure MyRepositoryItem is registered with the serializer before test solution creation in SolutionRepositoryMultiThreadTest. Remove redundant registration call. Add null check to IsReady property in GingerSocket2Test to prevent possible NullReferenceException. * Downgrade LibGit2Sharp.NativeBinaries to 2.0.278 (#4442) Updated GingerCore.csproj and GingerCoreNET.csproj to use LibGit2Sharp.NativeBinaries version 2.0.278 instead of 2.0.323. No other changes were made. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated the SSH and Cryptography nuget package to latest (#4432) Co-authored-by: Ravi Kumar <[email protected]> * contract update for pipeline run description (#4437) Co-authored-by: Ravi Kumar <[email protected]> * Added Code to allow Solution File to be loaded using SolutionRepository and changed version to 2026.3 (#4443) Co-authored-by: Mayur Rathi <[email protected]> --------- Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> Co-authored-by: Omri Agady <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Updated ginger core common nuget version (#4445) * Revert solution iteminfo from SolutionRepository * updated nuget version for publishing --------- Co-authored-by: Mayur Rathi <[email protected]> * Allow Fetching/Updating Ginger.Solution.xml through SolutionRepository/parser service * Need to Update GingerCoreCommon Version to generate new nuget package * Updated to latest version of Magick.NET nuget due to vulnarability detected by Dependebot Github Security scan alert (#4451) Co-authored-by: Mayur Rathi <[email protected]> * Enhance API Key encryption and remove masking logic (#4449…
* Update codeql-analysis.yml * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * Master for beta merge (#4429) * Merge master into beta (#4418) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Feature/uft lab phone selection (#4414) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * added an api call to fetch the current devices in the UFT Mobile Agent configurations * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * added a button to see the phones when selecting utf device and select from the list * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * tested and fixed all edge cases of the device selection (wrong or empty fields and switching platform) * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * fixed uft devices button * fixed the design and made a filtering for the phone list * fixed phone lab filtering system * Removed the task implementation in unix agent * changed UI from rejects raised * updated the ui design --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * fixed defect number 58085 (#4411) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * added the status code number in the json and the output of the rest api call * Rename status code parameter for clarity * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Update version numbers in GingerCoreCommon.csproj * Feature/android tv automation support (#4413) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Add Android TV support and enhance platform handling Enhanced platform support by introducing Android TV as a new platform type (`ePlatformType.AndroidTV`) alongside Mobile and iOS. Updated platform descriptions to include "Mobile/TV" for better clarity and added new image types for visual representation. UI components now display friendly platform descriptions and improved tooltips. Added ComboBox support for enum descriptions in grids. Extended the Appium driver to support Android TV with specific capabilities, configurations. Improved error handling and fallback mechanisms for driver initialization. Updated `ActMobileDevice` to include Android TV-specific actions and defaulted action descriptions to "Mobile/Tv Device Action." Enhanced `DeviceViewPage` to handle Android TV resolutions and scaling. Added dynamic screen size calculations with fallbacks for Android TV. Updated agent configurations to include Android TV as a selectable driver type and set default configurations for Android TV agents. Refactored code for better maintainability, improved exception handling, and consolidated driver configuration logic. Added new image resources for Android TV. Improved `GenericAppiumDriver` to handle Android TV-specific scenarios, including focused element detection and screenshot scaling. * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * enhancement relted android TV - livespy * enhancement related to android TV * Refactor and enhance platform-specific logic Refactored multiple methods across the codebase to improve maintainability, performance, and platform-specific functionality. Key changes include: - Simplified `timenow` method in `PomAllElementsPage.xaml.cs` with improved user feedback and streamlined logic. - Enhanced `BitmapToBase64` in `PomLearnUtils.cs` with null-checks, fallback mechanisms, and better error handling. - Removed redundant methods `LoadGingerLiveSpyScript` and `GetFocusedElementInfo` in `GenericAppiumDriver.cs`. - Refactored `SimulatePhotoOrBarcode` to update `GingerLiveSpy.js` handling. - Added platform-specific logic for `HighLightElement`, `GetElementAtMousePosition`, `FindElementXmlNodeByXY`, `GetElementAtPoint`, and `GetPointOnAppWindow` in `GenericAppiumDriver.cs` to support Android TV, Android (mobile), iOS, and Web. - Improved shadow DOM support and optimized event handling in `GingerLiveSpy.js`. - Enhanced error handling, logging, and fallback mechanisms across the codebase. These changes improve cross-platform compatibility, user experience, and code maintainability. * Refactor and improve code readability and performance Refactored `ResizeDeviceButtons` and `GetDevicePoint` methods in `DeviceViewPage.xaml.cs` to simplify logic, remove redundant checks, and improve maintainability. Updated `eDeviceSource` enum in `MobileDriverCommon.cs` by removing `LambdaTest` and reassigning `AndroidTV`. Replaced the license header in `GingerLiveSpy.js` with an updated Apache License 2.0 notice. Added a new `ElementFromPoint` method to determine the deepest DOM element at a specific point. Refactored driver configuration logic in `AgentOperations.cs` to improve readability, simplify `DriverConfigParam` processing, enhance error handling, and remove duplicate code. Introduced a new `InitDriverConfigs` method for better organization. --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: tanushah <[email protected]> * Enhancement/shared repository folder view2 (#4419) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * folder view fix * merge conflict resolved * merge conflict resolved * enahcnement * code rabbit comments handled --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Improve Sikuli SetValue handling and focus logic (#4420) Refactored SetValue to check for empty text before typing and use KeyModifier.NONE for normal input. Now sets an error if the value is empty. Also, SetFocusToSelectedApplicationInstance is now called synchronously instead of asynchronously. * Exclamation mark fix (#4421) * Exclamation mark fix * commit * Improve circular reference handling in JSON schema tools (#4422) Enhanced detection and prevention of circular references and stack overflows in JSON schema-to-object generation. Added try-catch blocks for safer property access, improved stack management, and more robust array/property traversal. Also improved error handling when adding API models to repository folders by logging and fallback to parent folder if needed. * Add tests for circular refs in JsonSchemaFaker, update count (#4423) Add unit tests to SwaggetTests.cs to ensure JsonSchemaFaker handles circular and self-referencing JSON schemas without infinite loops or errors. Import NJsonSchema for schema support. Update assertion for "Add a new pet to the store-JSON" to expect 7 return values instead of 8. * Handled set DS value issue (#4425) * add to BF iicon removal (#4426) * add to BF iicon removal * uncommented code * code rabbit suggestion --------- Co-authored-by: Ravi Kumar <[email protected]> * resolved conflicts * resolved conflicts --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> * Prevent Excel formula injection in CSV export (#4431) * Prevent Excel formula injection in CSV export D56006_Added logic to prefix values starting with '=', '+', '-', or '@' with a single quote when exporting BusinessFlow, Activity, Act description, and input parameters to CSV. This ensures spreadsheet applications treat these fields as plain text, preventing misinterpretation as formulas. Also refactored code for clarity using intermediate variables. * Refactor CSV export for clarity and null safety Renamed method parameters and loop variables for clarity and consistency. Updated references to use descriptive names. Added null check for act.Description to prevent exceptions. Improves code readability and robustness. --------- Co-authored-by: tanushah <[email protected]> * added an option to change text color in consoleDriver window * Action Description fix (#4434) * Update to .NET 10, package versions, and minor UI tweaks (#4435) * Update to .NET 10, package versions, and minor UI tweaks Upgraded all projects from .NET 8.0 to .NET 10.0. Updated System.Text.Json to 10.0.2 and System.Drawing.Common to 10.0.2. Added Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Tokens (8.15.0) to support JWT features. Bumped protobuf-net packages to 3.2.56. Improved XAML grid layout in DataSourceExportToExcelPage.xaml and added DesignerSerializationVisibility attributes in SnippingTool.cs. No functional logic changes. * upgrade dotnet version to 10 * push supported dotnet version for Github actions * Fix Dotnet version on Test stage * Fix CLI TestsGithub * Fix Test Dotnet Framework of Github with new version of dotnet * nuget packages updation * Downgrade EPPlus and Excel Interop, update dependencies Downgraded EPPlus to 6.0.4 and Microsoft.Office.Interop.Excel to 15.0.4795.1001 across multiple projects for compatibility. Removed Microsoft.IdentityModel.* and System.IdentityModel.Tokens.Jwt from core projects, and removed SixLabors.ImageSharp from GingerCoreNET. Reformatted System.Globalization entry in GingerCore. These changes address dependency and compatibility issues. --------- Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Mask API key in UI and update only on user edit (#4436) * Mask API key in UI and update only on user edit Added masking for API key in VRTExternalConfigurationsPage to prevent exposure. The real key is hidden with a generic mask, and only updated if the user changes the field. Existing key is preserved unless explicitly edited. * Addition of validation * updated validation * updated validation rule --------- Co-authored-by: tanushah <[email protected]> * Fix codeql-config.yml file place * Upgrade Github Actions versions * Update license headers to 2026 and add missing headers (#4440) Updated the copyright year in all license headers from 2014-2025 to 2014-2026 across the codebase. Added the standard license header to several files that were previously missing it. No functional code changes were made. Co-authored-by: tanushah <[email protected]> * Register serializer classes earlier; null check in IsReady (#4441) Ensure MyRepositoryItem is registered with the serializer before test solution creation in SolutionRepositoryMultiThreadTest. Remove redundant registration call. Add null check to IsReady property in GingerSocket2Test to prevent possible NullReferenceException. * Downgrade LibGit2Sharp.NativeBinaries to 2.0.278 (#4442) Updated GingerCore.csproj and GingerCoreNET.csproj to use LibGit2Sharp.NativeBinaries version 2.0.278 instead of 2.0.323. No other changes were made. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated the SSH and Cryptography nuget package to latest (#4432) Co-authored-by: Ravi Kumar <[email protected]> * contract update for pipeline run description (#4437) Co-authored-by: Ravi Kumar <[email protected]> * Added Code to allow Solution File to be loaded using SolutionRepository and changed version to 2026.3 (#4443) Co-authored-by: Mayur Rathi <[email protected]> * Refactor export query generation and persistence logic (#4447) Rewrite CreateQueryWithWhereList to use LINQ for column selection, simplify WHERE clause construction with a switch statement, and return queries in the expected format. Update DataSourceExportToExcelPage to persist ExportQueryValue for both action and non-action table elements. Clean up code and improve maintainability. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated to latest version of Magick.NET nuget due to vulnarability detected by Dependebot Github Security scan alert (#4451) (#4455) Co-authored-by: Mayur Rathi <[email protected]> * Merge 2026.3 to master (#4457) * Merge master to official branch (#4444) * Update codeql-analysis.yml * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * Master for beta merge (#4429) * Merge master into beta (#4418) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Feature/uft lab phone selection (#4414) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * added an api call to fetch the current devices in the UFT Mobile Agent configurations * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * added a button to see the phones when selecting utf device and select from the list * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * tested and fixed all edge cases of the device selection (wrong or empty fields and switching platform) * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * fixed uft devices button * fixed the design and made a filtering for the phone list * fixed phone lab filtering system * Removed the task implementation in unix agent * changed UI from rejects raised * updated the ui design --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * fixed defect number 58085 (#4411) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * added the status code number in the json and the output of the rest api call * Rename status code parameter for clarity * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Update version numbers in GingerCoreCommon.csproj * Feature/android tv automation support (#4413) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Add Android TV support and enhance platform handling Enhanced platform support by introducing Android TV as a new platform type (`ePlatformType.AndroidTV`) alongside Mobile and iOS. Updated platform descriptions to include "Mobile/TV" for better clarity and added new image types for visual representation. UI components now display friendly platform descriptions and improved tooltips. Added ComboBox support for enum descriptions in grids. Extended the Appium driver to support Android TV with specific capabilities, configurations. Improved error handling and fallback mechanisms for driver initialization. Updated `ActMobileDevice` to include Android TV-specific actions and defaulted action descriptions to "Mobile/Tv Device Action." Enhanced `DeviceViewPage` to handle Android TV resolutions and scaling. Added dynamic screen size calculations with fallbacks for Android TV. Updated agent configurations to include Android TV as a selectable driver type and set default configurations for Android TV agents. Refactored code for better maintainability, improved exception handling, and consolidated driver configuration logic. Added new image resources for Android TV. Improved `GenericAppiumDriver` to handle Android TV-specific scenarios, including focused element detection and screenshot scaling. * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * enhancement relted android TV - livespy * enhancement related to android TV * Refactor and enhance platform-specific logic Refactored multiple methods across the codebase to improve maintainability, performance, and platform-specific functionality. Key changes include: - Simplified `timenow` method in `PomAllElementsPage.xaml.cs` with improved user feedback and streamlined logic. - Enhanced `BitmapToBase64` in `PomLearnUtils.cs` with null-checks, fallback mechanisms, and better error handling. - Removed redundant methods `LoadGingerLiveSpyScript` and `GetFocusedElementInfo` in `GenericAppiumDriver.cs`. - Refactored `SimulatePhotoOrBarcode` to update `GingerLiveSpy.js` handling. - Added platform-specific logic for `HighLightElement`, `GetElementAtMousePosition`, `FindElementXmlNodeByXY`, `GetElementAtPoint`, and `GetPointOnAppWindow` in `GenericAppiumDriver.cs` to support Android TV, Android (mobile), iOS, and Web. - Improved shadow DOM support and optimized event handling in `GingerLiveSpy.js`. - Enhanced error handling, logging, and fallback mechanisms across the codebase. These changes improve cross-platform compatibility, user experience, and code maintainability. * Refactor and improve code readability and performance Refactored `ResizeDeviceButtons` and `GetDevicePoint` methods in `DeviceViewPage.xaml.cs` to simplify logic, remove redundant checks, and improve maintainability. Updated `eDeviceSource` enum in `MobileDriverCommon.cs` by removing `LambdaTest` and reassigning `AndroidTV`. Replaced the license header in `GingerLiveSpy.js` with an updated Apache License 2.0 notice. Added a new `ElementFromPoint` method to determine the deepest DOM element at a specific point. Refactored driver configuration logic in `AgentOperations.cs` to improve readability, simplify `DriverConfigParam` processing, enhance error handling, and remove duplicate code. Introduced a new `InitDriverConfigs` method for better organization. --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: tanushah <[email protected]> * Enhancement/shared repository folder view2 (#4419) * Mobile accessibility issue for ios - fix * added CodeQL WF * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * Update codeql-analysis.yml * removed macOS build steps * Java Explorer issue fix * Update codeql-analysis.yml excluding unwanted folders and projects * Update README.md updating for triggering security * mobily accessibility locators identification issue fix * codeql related updates * coderabbit comments handled * Fix: GitHub SecurityAlerts 198,199, 200, 201, 202 * its tested and working * Codecy suggestions * CodeRabit Suggestions * CodeRabbit suggestions * CodeRabbit Suggestions * Fix for Git Security Alert 181 * codacy suggestions * RemovedUnusedMethod * Pull all variables except password variables * Removing code that passes Ginger variables to Robot script using temp file * Revert "Removing code that passes Ginger variables to Robot script using temp file" This reverts commit c62b1428dfecc31b178de767073a22de26682a1c. * Fixed DBoperations Git Alerts * Build Errors Fixed * Removed Unused GingerExecutionReport folder from Ginger also handled few codacy comments * Code Issues * Enabled only Windows build for CodeQL * added variable option * MSSQL Fix Test * Test Changes * Bar user inputted connection string. * Not using GetConnectionString method * added removing variable value code * code rabbit suggested changes * code rabbit changes * Do not assign the Expression to mValueCalculated if it was failed to evaluate. * Enhancement Excel Action and Refactoring * code refactor * Enhanced the Unit test cases for excel action according to recent enhancements * Codacy issues * Upgraded Magick.NET-Q16-AnyCPU nugget to 14.10.0 * codacy * removed unwanted check * code refactoring * updated ut * codacy and code rabbit comments handled * Pull Address adjustment * serliazation added * Serliazation error fix * updating version updating version * Latest changes for Excel action * workwork book * coderabbit comments * lock object * coder rabbit issue * Handled the file name length while api model configuration, and added length to subfolder creation * resolved the review comment from code rabbit * Handled the issue of value expression getting truncated * fixing the index issue * Update codeql-analysis.yml * Exclude JavaScript from Scanning for security Vulnarabilities * Exclude JavaScript from Scanning for security Vulnarabilities_Master * store to added hidden option * removed code * code refactor * code refactor * Update codeql-analysis.yml * Revert * Bug fixes for excel action * code removed * coderabbit comments * filter issue fix * As stated in bug: modifed error log to "Error" instead of "Warning" * push latest fixes * unit test case change according to enhancement * Latest * Rollbacked the changes made for handling the file name length * Modified code to support maxlength only for folder name * Removed the task implementation in unix agent * Fixed issue of special characters from toerh languages are not getting sent to mainframe * Shared Repository Folder View (#4416) * Shared Repository Folder View * enhancement * code rabbit comments handled * code rabbit comments handle --------- Co-authored-by: Ravi Kumar <[email protected]> * folder view fix * merge conflict resolved * merge conflict resolved * enahcnement * code rabbit comments handled --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> * Improve Sikuli SetValue handling and focus logic (#4420) Refactored SetValue to check for empty text before typing and use KeyModifier.NONE for normal input. Now sets an error if the value is empty. Also, SetFocusToSelectedApplicationInstance is now called synchronously instead of asynchronously. * Exclamation mark fix (#4421) * Exclamation mark fix * commit * Improve circular reference handling in JSON schema tools (#4422) Enhanced detection and prevention of circular references and stack overflows in JSON schema-to-object generation. Added try-catch blocks for safer property access, improved stack management, and more robust array/property traversal. Also improved error handling when adding API models to repository folders by logging and fallback to parent folder if needed. * Add tests for circular refs in JsonSchemaFaker, update count (#4423) Add unit tests to SwaggetTests.cs to ensure JsonSchemaFaker handles circular and self-referencing JSON schemas without infinite loops or errors. Import NJsonSchema for schema support. Update assertion for "Add a new pet to the store-JSON" to expect 7 return values instead of 8. * Handled set DS value issue (#4425) * add to BF iicon removal (#4426) * add to BF iicon removal * uncommented code * code rabbit suggestion --------- Co-authored-by: Ravi Kumar <[email protected]> * resolved conflicts * resolved conflicts --------- Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> * Prevent Excel formula injection in CSV export (#4431) * Prevent Excel formula injection in CSV export D56006_Added logic to prefix values starting with '=', '+', '-', or '@' with a single quote when exporting BusinessFlow, Activity, Act description, and input parameters to CSV. This ensures spreadsheet applications treat these fields as plain text, preventing misinterpretation as formulas. Also refactored code for clarity using intermediate variables. * Refactor CSV export for clarity and null safety Renamed method parameters and loop variables for clarity and consistency. Updated references to use descriptive names. Added null check for act.Description to prevent exceptions. Improves code readability and robustness. --------- Co-authored-by: tanushah <[email protected]> * added an option to change text color in consoleDriver window * Action Description fix (#4434) * Update to .NET 10, package versions, and minor UI tweaks (#4435) * Update to .NET 10, package versions, and minor UI tweaks Upgraded all projects from .NET 8.0 to .NET 10.0. Updated System.Text.Json to 10.0.2 and System.Drawing.Common to 10.0.2. Added Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Tokens (8.15.0) to support JWT features. Bumped protobuf-net packages to 3.2.56. Improved XAML grid layout in DataSourceExportToExcelPage.xaml and added DesignerSerializationVisibility attributes in SnippingTool.cs. No functional logic changes. * upgrade dotnet version to 10 * push supported dotnet version for Github actions * Fix Dotnet version on Test stage * Fix CLI TestsGithub * Fix Test Dotnet Framework of Github with new version of dotnet * nuget packages updation * Downgrade EPPlus and Excel Interop, update dependencies Downgraded EPPlus to 6.0.4 and Microsoft.Office.Interop.Excel to 15.0.4795.1001 across multiple projects for compatibility. Removed Microsoft.IdentityModel.* and System.IdentityModel.Tokens.Jwt from core projects, and removed SixLabors.ImageSharp from GingerCoreNET. Reformatted System.Globalization entry in GingerCore. These changes address dependency and compatibility issues. --------- Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Mask API key in UI and update only on user edit (#4436) * Mask API key in UI and update only on user edit Added masking for API key in VRTExternalConfigurationsPage to prevent exposure. The real key is hidden with a generic mask, and only updated if the user changes the field. Existing key is preserved unless explicitly edited. * Addition of validation * updated validation * updated validation rule --------- Co-authored-by: tanushah <[email protected]> * Fix codeql-config.yml file place * Upgrade Github Actions versions * Update license headers to 2026 and add missing headers (#4440) Updated the copyright year in all license headers from 2014-2025 to 2014-2026 across the codebase. Added the standard license header to several files that were previously missing it. No functional code changes were made. Co-authored-by: tanushah <[email protected]> * Register serializer classes earlier; null check in IsReady (#4441) Ensure MyRepositoryItem is registered with the serializer before test solution creation in SolutionRepositoryMultiThreadTest. Remove redundant registration call. Add null check to IsReady property in GingerSocket2Test to prevent possible NullReferenceException. * Downgrade LibGit2Sharp.NativeBinaries to 2.0.278 (#4442) Updated GingerCore.csproj and GingerCoreNET.csproj to use LibGit2Sharp.NativeBinaries version 2.0.278 instead of 2.0.323. No other changes were made. Co-authored-by: tanushah <[email protected]> Co-authored-by: Ravi Kumar <[email protected]> * Updated the SSH and Cryptography nuget package to latest (#4432) Co-authored-by: Ravi Kumar <[email protected]> * contract update for pipeline run description (#4437) Co-authored-by: Ravi Kumar <[email protected]> * Added Code to allow Solution File to be loaded using SolutionRepository and changed version to 2026.3 (#4443) Co-authored-by: Mayur Rathi <[email protected]> --------- Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: shahanemahesh <[email protected]> Co-authored-by: Mahesh Shahane <[email protected]> Co-authored-by: AMAN PRASAD <[email protected]> Co-authored-by: Mahesh Kale <[email protected]> Co-authored-by: makhlaque <[email protected]> Co-authored-by: mohd-amdocs <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: Meni Kadosh <[email protected]> Co-authored-by: Mayur Rathi <[email protected]> Co-authored-by: Gokul Bothe <[email protected]> Co-authored-by: omri1911 <[email protected]> Co-authored-by: tanushahande2003 <[email protected]> Co-authored-by: tanushah <[email protected]> Co-authored-by: Omri Agady <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> Co-authored-by: Nadeem Jazmawe <[email protected]> * Updated ginger core common nuget version (#4445) * Revert solution iteminfo from SolutionRepository * updated nuget version for publishing --------- Co-authored-by: Mayur Rathi <[email protected]> * Allow Fetching/Updating Ginger.Solution.xml through SolutionRepository/parser service * Need to Update GingerCoreCommon Version to generate new nuget package * Updated to latest version of Magick.NET nuget due to vulnarability detected by Dependebot Github Security scan alert (#4451) Co-authored-by: Mayur Rathi <[email protected]> * Enhance API Key encryption and remove masking logic (…
Description
Type of Change
Checklist
[IsSerializedForLocalRepository]where neededReporter.ToLog()patternSummary by CodeRabbit
New Features
Improvements
Infrastructure