## Description
On protected branches, we neither allow auto-commits nor expose the
results of the git status API. As a result, these two API calls are
redundant. Skipping them can reduce load times by approximately 30
seconds on protected branches.
Furthermore, since auto-commits are disabled for protected branches,
there's a high chance that the branch contains an outdated version of
the DSL. This often results in uncommitted changes in the file system
for those branches. Such uncommitted changes can slow down subsequent
checkouts to other branches, as Git needs to re-index these files before
performing a reset. These delays are even more pronounced when using an
EFS.
This PR removes the auto-commit and status API calls for protected
branches.
Fixes #`Issue Number`
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.Git"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/15459263185>
> Commit: 2b04a0edf89088795192d6fb1a068bf868ae924f
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=15459263185&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Thu, 05 Jun 2025 07:51:10 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added the ability to explicitly reset Git status for artifacts,
providing clearer feedback when working with protected branches.
- **Bug Fixes**
- Improved handling of protected branches by preventing unnecessary
status checks and auto-commit operations, ensuring protected branches
are not modified unintentionally.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Introducing artifact aware permissions
- Better error handling for sagas
- New API contracts for local profile
Fixes https://github.com/appsmithorg/appsmith/issues/38505
## Automation
/ok-to-test tags="@tag.Git"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13375089313>
> Commit: 13aa020d4699a94ab5464e1a92b024d4068896b2
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13375089313&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Mon, 17 Feb 2025 17:44:17 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced Git integration with adaptive connection messages and success
modals that now reflect the type of artifact being handled.
- Added support for storing additional Git metadata to improve artifact
management.
- **Refactor**
- Streamlined error handling across Git operations to ensure more
reliable feedback.
- Updated permission structures and context management to deliver a more
robust and flexible Git experience.
- **Chores**
- Consolidated module organization and improved type consistency for
better maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Introduces new api contracts for git
- Adds feature flag `release_git_api_contracts_enabled`
Fixes https://github.com/appsmithorg/appsmith/issues/38500
## Automation
/ok-to-test tags="@tag.Git"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12810595516>
> Commit: 8f05bbfb0b9259c3ee40464099416b75688a4bd1
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12810595516&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Thu, 16 Jan 2025 15:05:20 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced a new feature flag `release_git_api_contracts_enabled`
- Added support for enhanced Git API contract handling
- **Improvements**
- Updated type definitions for Git-related operations
- Refined request and response handling for Git artifacts
- Improved type safety for Git references and branches
- **Changes**
- Modified several Git-related request and saga functions to support new
API contracts
- Updated artifact type enum values to use lowercase representations
- Introduced new interfaces for Git references and branches
- **Technical Updates**
- Added conditional logic for feature flag-based request processing
- Restructured type definitions across multiple Git-related modules
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Git mod integration with applications behind feature flag
Fixes#37815Fixes#37816Fixes#37817Fixes#37818Fixes#37819Fixes#37820
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12526603607>
> Commit: 19f3ca0a35b16b25b2cff8700e2df4b2a497e7fe
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12526603607&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Sat, 28 Dec 2024 15:57:13 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced various new hooks for Git functionalities, including
`useGitModEnabled`, `useGitCurrentBranch`, `useGitProtectedMode`, and
`useGitConnected`.
- Added a new component `DeployButton` to manage deployment actions.
- Integrated `ConnectSuccessModal` to enhance user feedback upon
successful Git connection.
- Added `GitImportModal` for improved Git import functionality.
- Introduced `GlobalProfileView` for managing and displaying user
profile information.
- Added a new icon, `CloudIconV2`, to the icon provider.
- Implemented `fetchGlobalSSHKey` and `gitImport` sagas for better state
management.
- **Improvements**
- Enhanced handling of Git-related states and actions across multiple
components and sagas.
- Streamlined selector usage for determining preview mode by replacing
`combinedPreviewModeSelector` with `selectCombinedPreviewMode`.
- Updated the `DeployPreview` component to manage success feedback and
handle commit operations more effectively.
- Improved the `StatusChangesView` component by adding a callout for
migration messages.
- Added new transformers for application status handling.
- **Bug Fixes**
- Updated error handling and loading states across various actions and
components to improve reliability.
- **Refactor**
- Refactored action creators to use `createArtifactAction` instead of
`createSingleArtifactAction` for consistency and clarity.
- Consolidated Git import and connection logic to improve modularity and
maintainability.
- Modified the `Header` component to utilize
`GitApplicationContextProvider` for managing Git-related state.
- Updated various components to utilize the new
`selectCombinedPreviewMode` selector for improved state management.
- Refactored the `DeployPreview` component to enhance its functionality
and styling consistency.
- Enhanced the `applicationStatusTransformer` to handle multiple status
transformations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Adds git modal
- Adds pull saga
- Adds ability to commit
- Adds ability to merge
- Adds ability to see status
- Adds ability to discard
- Improves on saga error handling
Fixes#37826Fixes#37803Fixes#37804Fixes#37807
## Automation
/ok-to-test tags="@tag.Git"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12319147488>
> Commit: ec461fde26da90af2f365fb36f49e3758c14cb96
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12319147488&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Fri, 13 Dec 2024 17:27:36 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced new components for managing Git operations, including
`ConflictErrorView`, `OpsModal`, `TabDeploy`, `TabMerge`, and
`StatusChanges`.
- Added loading and error handling components such as `StatusLoader` and
`DiscardFailedError`.
- Enhanced the `StatusTree` component for displaying hierarchical status
changes.
- **Bug Fixes**
- Improved error handling across various sagas and components.
- **Refactor**
- Renamed several modal toggle functions for clarity and consistency.
- Updated prop types for improved type safety in components.
- **Chores**
- Removed unused component `GitTest`.
- Updated imports and exports for better organization.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Adds more selectors
- Adds more sagas
- Introduces init steps for git
- Improvements upon CtxAwareGitQuickActions
Fixes#37800Fixes#36814
## Automation
/ok-to-test tags="@tag.Git"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/12295168481>
> Commit: ea1ab497cad677aac36f044462e623e526d421d1
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12295168481&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Git`
> Spec:
> <hr>Thu, 12 Dec 2024 12:06:09 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a context provider for managing Git-related state.
- Added a `GitQuickActions` component for various Git actions.
- Implemented custom hooks for managing Git branches, metadata,
operations, and settings.
- Added Redux Saga functions for fetching Git metadata and protected
branches.
- Enhanced autocommit functionality with polling for progress.
- Introduced actions for managing the autocommit process and fetching
protected branches.
- Added new actions to initialize Git for editor context and manage
loading states.
- **Bug Fixes**
- Improved error handling in various action creators and sagas.
- **Chores**
- Updated action creators and types for better type safety and clarity.
- Refined test cases for components to ensure accurate button selection.
- Modified request functions to utilize Axios promises directly for
better consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->