fix(stacks): keep stack breadcrumb trail when opening a container from a stack (#4) #7
Open
agent_coder
wants to merge 4 commits from
feat/4-stack-breadcrumbs into develop
pull from: feat/4-stack-breadcrumbs
merge into: vvzvlad:develop
vvzvlad:develop
vvzvlad:feat/1-remove-ee-ui
vvzvlad:feat/3-auto-update
vvzvlad:feat/2-stream-logs
vvzvlad:release/2.43
vvzvlad:release/2.39
vvzvlad:community
vvzvlad:release/2.39.3
vvzvlad:release/2.33
vvzvlad:release/2.42.0
vvzvlad:release/2.42
vvzvlad:release/2.41.1
vvzvlad:release/2.41
vvzvlad:release/2.39.2
vvzvlad:release/2.33.8
vvzvlad:release/2.41.0
vvzvlad:release/2.40.0
vvzvlad:release/2.40
vvzvlad:release/2.39.1
vvzvlad:release/2.39.0
vvzvlad:release/2.38.1
vvzvlad:release/2.38
vvzvlad:release/2.33.7
vvzvlad:release/2.38.0
vvzvlad:release/2.33.6
vvzvlad:release/2.37.0
vvzvlad:release/2.37
vvzvlad:release/2.33.5
vvzvlad:release/2.36.0
vvzvlad:release/2.36
vvzvlad:release/2.33.4
vvzvlad:release/2.33.3
vvzvlad:release/2.35.0
vvzvlad:release/2.35
vvzvlad:release/2.33.2
vvzvlad:release/2.34.0
vvzvlad:release/2.34
vvzvlad:release/2.33.1
vvzvlad:release/2.33.0
vvzvlad:release/2.33.0-rc2
vvzvlad:release/2.33.0-rc1
vvzvlad:release/2.32.0
vvzvlad:release/2.32
vvzvlad:release/2.32.0-rc1
vvzvlad:release/2.31.3
vvzvlad:release/2.31
vvzvlad:release/2.27.9
vvzvlad:release/2.27
vvzvlad:release/2.31.2
vvzvlad:release/2.27.8
vvzvlad:release/2.31.1
vvzvlad:release/2.27.7
vvzvlad:release/2.31.0
vvzvlad:release/2.30.1
vvzvlad:release/2.30
vvzvlad:release/2.30.0
vvzvlad:release/2.27.6
vvzvlad:release/2.27.5
vvzvlad:release/2.29.2
vvzvlad:release/2.29
vvzvlad:release/2.29.1
vvzvlad:release/2.29.0
vvzvlad:release/2.27.4
vvzvlad:release/2.27.3
vvzvlad:release/2.28.1
vvzvlad:release/2.28
vvzvlad:release/2.27.2
vvzvlad:release/2.28.0
vvzvlad:yd-develop
vvzvlad:release/2.27.1
vvzvlad:release/2.27.0
vvzvlad:release/2.27.0-rc3
vvzvlad:lp-test-branch2
vvzvlad:release/2.27.0-rc2
vvzvlad:release/2.27.0-rc1
vvzvlad:release/2.26.1
vvzvlad:release/2.26
vvzvlad:release/2.26.0
vvzvlad:release/2.25.1
vvzvlad:release/2.25
vvzvlad:release/2.21.5
vvzvlad:release/2.21
vvzvlad:release/2.25.0
vvzvlad:release/2.24.1
vvzvlad:release/2.24
vvzvlad:release/2.24.0
vvzvlad:release/2.23
vvzvlad:release/2.22
vvzvlad:release/2.21.4
vvzvlad:placeholder
vvzvlad:fix/r8s-120/app-table-settings-persistence
vvzvlad:fix/r8s-109/alow-standard-user-to-edit-volumes
vvzvlad:fix/r8s-103/more-resources-system-filtering
vvzvlad:fix/BE-11102/force-redeploy-edge-stack
vvzvlad:test-update
vvzvlad:vault/release-2.21
vvzvlad:lp-test-branch1
vvzvlad:vault/develop
vvzvlad:refactor/EE-7128/webeditor-doc-type
vvzvlad:test-version-semver
vvzvlad:feat/be-11276/be-ce-agent-change
vvzvlad:feat/be-11276/be-ce-agent-change-lts
vvzvlad:feat/be-11275/be-ce-change
vvzvlad:feat/be-11275/change-be-ce-lts
vvzvlad:vault/release-2.22
vvzvlad:fix/r8s-99/create-application-ns-dropdown
vvzvlad:rc/2.22.0-rc1
vvzvlad:chore/BE-11236/change-linode-branding-to-akamai-connected-cloud
vvzvlad:rc/2.21.0-rc2
vvzvlad:refactor/k8s-namespaces
vvzvlad:rc/2.21.0-rc1
vvzvlad:fix/EE-7284/show-services-explaination
vvzvlad:refactor/EE-2229/docker-images-list-view
vvzvlad:refactor/EE-2208/docker-configs-list-view
vvzvlad:refactor/EE-2300/env-item-view-react
vvzvlad:develop-james-nfs
vvzvlad:refactor/EE-6923/settings-api
vvzvlad:fix/EE-7150/tls-cipher-suites-2.20
vvzvlad:release/2.20
vvzvlad:fix/7011/refactor3
vvzvlad:fix/EE-6631/wait-in-defer-close-websocket
vvzvlad:fix/EE-7049/update-reachable-check-release
vvzvlad:fix/EE-6705/namespace-yaml-no-rq
vvzvlad:release/2.19
vvzvlad:refactor/data-cy
vvzvlad:fix/EE-6855/removed-user-cause-auto-update-fail
vvzvlad:fix/release/EE-6855/removed-user-cause-auto-update-failure
vvzvlad:fix/release/EE-6855/removed-user-cause-auto-update-fail
vvzvlad:fix/release/EE-6808/add-api-endpoint-access-check-1
vvzvlad:chore/XT-1188/add-data-cy-for-backup-and-restore
vvzvlad:fix/EE-6843/tunnel-timeout
vvzvlad:fix/EE-6818/api-error-message-rel
vvzvlad:fix/EE-6818/api-error-message
vvzvlad:fix/EE-6744/compose-runc-develop
vvzvlad:fix/EE-5936/EE-6736/reject-to-assign-edge-admin
vvzvlad:fix/release/EE-5936/EE-6736/reject-to-assign-edge-admin
vvzvlad:fix/release/EE-6627/lint-failure
vvzvlad:fix/EE-6627/lint-failure
vvzvlad:fix/EE-6723/use-pure-admin-release
vvzvlad:fix/EE-6723/use-pure-admin
vvzvlad:fix/EE-6647/tables-correct-external-display-for-resource-release
vvzvlad:fix/EE-6647/tables-correct-external-display-for-resource
vvzvlad:fix/EE-6596/edge-stack-create-template
vvzvlad:feat/EE-6454/support-docker-compose-run
vvzvlad:refactor/EE-6549/EE-6444/git-redeploy-form-section
vvzvlad:fix/EE-6411/env-vars-cursor-shift
vvzvlad:fix/EE-6459/CVEs
vvzvlad:fix/EE-661/staticcheck
vvzvlad:fix/EE-6435/close-before-restore-release
vvzvlad:revert-10718-fix/EE-6392/show-edit-external-app
vvzvlad:fix/EE-6346/gitops-commit-links-2-release
vvzvlad:fix/EE-5664/oauth-show-asterisks-placeholder-release
vvzvlad:fix/release/EE-6373/target-path-exist-error-when-upgrade
vvzvlad:fix/EE-6373/target-path-exist-error-when-upgrade
vvzvlad:fix/EE-661/enable-ineffassign
vvzvlad:fix/EE-6377/singleflight-gitops-rel
vvzvlad:fix/EE-6114/gitops-data-race-rel
vvzvlad:fix/EE-6114/gitops-data-race-dev
vvzvlad:fix/EE-6373/upgrade-target-path-exists
vvzvlad:fix/EE-6321/gitops-online-check-rel
vvzvlad:fix/EE-6211/stack-build-context-validation-rel
vvzvlad:fix/EE-6211/stack-build-context-validation-dev
vvzvlad:release/2.19.2
vvzvlad:feat/EE-5573/related-changes
vvzvlad:refactor/with-form-validation-set-field-value
vvzvlad:refactor/EE-5521/migrate-app-create-form-to-react
vvzvlad:refactor/EE-2307/EE-5207/container-base-form
vvzvlad:fix/EE-4602/switch-color-fix-rel
vvzvlad:fix/EE-4602/switch-color-fix-rel-new
vvzvlad:feat/EE-4337/EE-4484/CE/docker-networks-datatable
vvzvlad:refactor/EE-4337/service-task-datatable
vvzvlad:fix/EE-5980/version-stack-backward-capability
vvzvlad:snyk-fix-0fc01e6b5b4266e90ae8d7d367ac399f
vvzvlad:feat/EE-4500/gorm-sqlite-poc
vvzvlad:release/2.18
vvzvlad:fix/EE-5695/env-manage-access
vvzvlad:fix/EE-5497/helm-repo-url-update
vvzvlad:fix/EE-5406/remove-path-ingress-host-rel
vvzvlad:fix/EE-3841/fix-associated-environments
vvzvlad:refactor/EE-2270/EE-5502/settings-components
vvzvlad:feat/EE-4986/enable-lb-np-type-ingresses
vvzvlad:fix/EE-1976/support-copy-paste-in-container-console
vvzvlad:fix/revert-makefile-218
vvzvlad:fix/dev-build-scripts
vvzvlad:fix/EE-5311/endpoint-api-swagger-doc
vvzvlad:fix/EE-3059/security-scan-debug
vvzvlad:feat/EE-5028/security_teaser
vvzvlad:fix/EE-5234/non-existent-pvc-rel
vvzvlad:fix/EE-5234/non-existent-pvc
vvzvlad:fix/EE-5149/namespace-cache-refresh-rel
vvzvlad:fix/EE-4498/fix-swagger-id-types
vvzvlad:fix/EE-4839/normalize-project-name
vvzvlad:release/2.17
vvzvlad:feat/EE-4754/omit-empty
vvzvlad:chore/update-tool-versions
vvzvlad:fix/EE-4991/kube-storage-detection
vvzvlad:chore/EE-4951/update-edgestack-test
vvzvlad:chore/remove-old-pkg-path
vvzvlad:feat/EE-4752/go-json
vvzvlad:fix/release/EE-4781/no-error-message-if-ce-upgrade-fails
vvzvlad:fix/EE-4766/fix-data-race-in-edgeJobTasksCollect
vvzvlad:fix/EE-4781/no-error-message-if-ce-upgrade-fails
vvzvlad:feat/EE-3604/ui-edge-devices
vvzvlad:feat/EE-3417/EE-3418/multiple-git-repository
vvzvlad:release/2.16
vvzvlad:fix/EE-4548/vulnerable-to-path-traversal-attacks
vvzvlad:fix/EE-3155/cannot-save-internal-authentication
vvzvlad:fix/EE-4286/update-tls-cert-for-docker-env
vvzvlad:feat/fedex/sqlite
vvzvlad:feat/fedex/sqlite-settings
vvzvlad:revert-7749-bug/EE-4311/ingressclass-disallowed-rel
vvzvlad:fix/EE-4322/namespace-disallow
vvzvlad:fix/EE-4312/js-paths
vvzvlad:release/2.15
vvzvlad:fix/EE-3641/page-title-fix
vvzvlad:fix/root-provider
vvzvlad:feat-fdo-1.1
vvzvlad:feat/EE-3894/ui-waiting-room-icon
vvzvlad:snyk-fix-afd68b0b2e0ac933fa52b1544ba67c24
vvzvlad:feat/EE-3513/ui-docker-volume-browser-2
vvzvlad:feat/EE-3388/EE-3478/ui-improvements-namespace-access
vvzvlad:feat/EE-3505/ui-docker-images-item-test
vvzvlad:fix/EE-3683/stack-permissions-are-ignored
vvzvlad:feat/EE-3576/portainer-wizard-ui-change
vvzvlad:feat/EE-3375/ce/wizard-add-identifiers-for-TA
vvzvlad:feat/EE-3491/new-docker-create-ui
vvzvlad:release/2.14
vvzvlad:feat/DTD-102/new-logger
vvzvlad:feat/EE-3533/ui-edge-stacks-create
vvzvlad:fix/EE-2907/ce/missing-kubernetes-sidebar-entries
vvzvlad:fix/EE-3686/fix-tooltip-double-issue
vvzvlad:fix/ee-3506/update-image-list-ui
vvzvlad:fix/EE-3521/swarm-service-list-ui
vvzvlad:feature/EE-3636/icon-styling
vvzvlad:fix/EE-3512/swarm-secrets-list-ui
vvzvlad:fix/EE-3488/swarm-config-list-ui
vvzvlad:fix/ee-3509/update-network-list-ui
vvzvlad:fix/ee-3516/update-vol-list-ui
vvzvlad:feat/EE-2552/EE-3451/-be-supply-build-info
vvzvlad:oscarzhou-portainer-patch-1
vvzvlad:feat/EE-3079/edge-stack-logs
vvzvlad:fix/EE-3445/open-tooltip-on-hover
vvzvlad:fix/EE-3324/password-change-error
vvzvlad:feat/EE-3252/remove-unused-port-on-extension
vvzvlad:feat/3143-nvidia-container-toolkit
vvzvlad:edge-wss
vvzvlad:podman-2022
vvzvlad:release/2.13
vvzvlad:debug-api-endpoint
vvzvlad:fix/EE-3152/tls-downgrade-release
vvzvlad:feat/EE-3152/tls-downgrade
vvzvlad:feat/EE-3062/EE-3085/document-extension
vvzvlad:feat/ce-220-security-scan
vvzvlad:fix/EE-2835/add-edge-groups-column-in-edge-device-view
vvzvlad:feat/EE-2680/allow-env-vars-passed-on-webhooks
vvzvlad:fix/EE-2966/migration-test-dev
vvzvlad:feat/EE-2747/docker-desktop-extension-auto-generation
vvzvlad:snyk-fix-bcb96aa2f9b730b2f44c3825ceba182a
vvzvlad:fix/EE-2594/empty-network-option-in-windows
vvzvlad:EE-2691-experiment
vvzvlad:snyk-fix-af06d21279ebae87a2d003141849185d
vvzvlad:fix/broken-go-lint-settings
vvzvlad:release/1.25
vvzvlad:snyk-fix-411816fd9cf6e70ce95f0fc76a2e8f42
vvzvlad:feat/EE-810/EE-2691/disable-instance-if-not-initialized
vvzvlad:fix/EE-2167/Migrate-124-users-to-213
vvzvlad:refactor/EE-2545/migration-improvements
vvzvlad:feat/EE-2597/create-object-with-string-id
vvzvlad:feat/EE-2404/async-edge-command-queue
vvzvlad:1.24
vvzvlad:feat/support-agent-auto-upgrade
vvzvlad:chore/reduce-dependency-obfuscation
vvzvlad:fix/EE-2167/Migrate-1x-users-to-2x
vvzvlad:feat/EE-2493/poc-mtls-for-edge-agent
vvzvlad:spike/DTD-58/DTD-72/useractivity-middleware
vvzvlad:fix/EE-2432/edge-stacks-status-update
vvzvlad:master
vvzvlad:release/2.11
vvzvlad:feat/dev-metrics
vvzvlad:fix/EE-2489/release/amt-devices-table-hide-expand
vvzvlad:2.11.1-fdo
vvzvlad:fix/release/remove-double-import
vvzvlad:feat/EE-1905/environment-type-filter
vvzvlad:db-fixture-support
vvzvlad:feat/edge-devices-view-react
vvzvlad:feat/INT-32/intel-images-openamt
vvzvlad:feat/EE-1852/EE-1983/encryption-key-with-store-refactor
vvzvlad:feat/ee-1977/rollup-duplicated-volumes
vvzvlad:feat/EE-1852/EE-1983/encryption-key
vvzvlad:feat/EE-506/release-2.11-support-base-url
vvzvlad:revert-6182-revert-6172-fix/INT-6/open-amt-config
vvzvlad:fix/ee-2060/support-upload-huge-file
vvzvlad:feat/INT-16/poc-amt-api-rpc-handler
vvzvlad:fix/EE-1939/provide-right-order-to-registries-in-dropdown-menu
vvzvlad:fix/EE-1973/container-logs-download-extra-CR
vvzvlad:feat/INT-15/proxy-mps
vvzvlad:release/2.9
vvzvlad:fix/swagger/restore-params
vvzvlad:fork_branch
vvzvlad:feat/EE-1942/resource-setting-update
vvzvlad:toolkit-v2
vvzvlad:fix/EE-1922/harden-filesystem-service
vvzvlad:fix/EE-1971/bubble-panic-error
vvzvlad:fix/EE-1971/bubble-panic-error-release
vvzvlad:chore/upgrade-to-bbolt
vvzvlad:poc-searchbar
vvzvlad:fix/EE-1867/standard-user-unable-to-access-pod-and-node-stats
vvzvlad:fix/EE-1911/can-not-update-application-publishing-mode-develop
vvzvlad:fix/EE-1911/can-not-update-application-publishing-mode
vvzvlad:feat/EE-1611/EE-1878/pull-and-redeploy-button-visibility
vvzvlad:fix/EE-1872/namespaces-stack-deletion-develop
vvzvlad:fix/EE-1872/namespaces-stack-deletion
vvzvlad:feat/EE-568/admin-auto-population-ldap-ce
vvzvlad:fix/release-conflicts
vvzvlad:feat/EE-568/admin-auto-population-ldap
vvzvlad:snyk-fix-234920d529b1716a428f2b20a3048d37
vvzvlad:fix/EE-1845/ldap-user-enable-release
vvzvlad:fix/EE-1845/ldap-user-enable
vvzvlad:fix/EE-882/EE-1793/box-selector-icon-position
vvzvlad:fix/EE-1316/jwt-is-exposed-in-the-activity-log
vvzvlad:feat/EE-1543/Allow-Services-to-be-managed-for-external-kube-apps
vvzvlad:feat/EE-189/EE-577/support-git-automated-sync-for-k8s-applications
vvzvlad:feat/EE-577/EE-1760/remove-stack-when-no-app
vvzvlad:XT-807-ui-automation-kube-smoke-tests-helm
vvzvlad:feat/EE-1627/introduce-the-ability-to-filter-applications-by-type
vvzvlad:bug/EE-1734/Registry-page-displays-No-registry-available-despite-being-dockerhub-registry-available
vvzvlad:feat/EE-882/EE-1672/registry-view
vvzvlad:feat/EE882/EE-1675/logs
vvzvlad:fix/EE-1439/modify-new-data-store-check-logic
vvzvlad:docs/add-tool-versions
vvzvlad:fix/EE-1696/polling-webhook-of-stack-from
vvzvlad:fix-release-production
vvzvlad:fix/EE-1714/add-debug-log-for-volume-migration-develop
vvzvlad:fix/EE-1714/add-debug-log-for-volume-migration
vvzvlad:fix/EE-1707/cannot-deploy-git-stack-without-username-de
vvzvlad:fix/EE-1707/cannot-deploy-git-stack-without-username
vvzvlad:fix/EE-1678/failed-to-create-namespace-when-having-registry-de
vvzvlad:feat/EE-1635/remove-stack-from-app-list
vvzvlad:fix/EE-1710/Error-message-in-stats-view-non-admin-missing-description
vvzvlad:fix/EE-1710/error-message-in-stats-view-non-admin-missing-description
vvzvlad:fix/EE-1709/Fix-git-stack-authentication-on-by-default
vvzvlad:fix/EE-1709/fix-git-stack-authentication-on-by-default
vvzvlad:fix/EE-1712/no-icon-displayed-when-template-created-via-upload-file
vvzvlad:fix/EE-1712/No-icon-displayed-when-template-created-via-upload-file
vvzvlad:fix/EE-1678/failed-to-create-namespace-when-having-registry
vvzvlad:fix/EE-1661/fully-rename-endpoint-to-environment-in-swagger-doc
vvzvlad:fix/EE-1660/fix-custom-logo-not-updated
vvzvlad:fix/EE-1636/fix-question-mark-alignment-in-PAT-field
vvzvlad:test/node_env
vvzvlad:fix/EE-1653/wrong_table_background_color_for_helm_application_listing
vvzvlad:feat/ee-834/fix-openapi-errors
vvzvlad:fix/EE-1073/fix_difficulties_selecting_mixed_protocols_for_k8s
vvzvlad:feat/EE-1635/removed-stack-deletion-in-app-list-page
vvzvlad:feat/EE-1089/First-UX-experience
vvzvlad:fix/EE-1586/file-not-persisted-after-deployed-with-url
vvzvlad:feat/EE-577/EE-1594/use-user-token-for-autoupdate
vvzvlad:chore/EE-1052/Replace-all-the-references-to-deviantony
vvzvlad:fix/EE-1591/non-admin-users-cannot-deploy-charts-containing-secrets
vvzvlad:feat/EE-909/Dark_high_contrast_mode_supported
vvzvlad:feat/EE-1206/Rename_endpoints_to_environments
vvzvlad:snyk-fix-ed0fa419898eea7805b20ec7511ebde2
vvzvlad:fix/EE-1553/unable-to-apply-note-to-k8s-application
vvzvlad:feat/EE-809/EE-466/kube-advanced-apps
vvzvlad:feat/EE-1278/swagger-doc-fixes
vvzvlad:fix/EE-1454/tag-not-attached-to-local-k8s-endpoint
vvzvlad:fix/EE-1564/CE-missing-header-namespace-create-view
vvzvlad:feat/EE-1096/CE-registry-delete-warning-modal
vvzvlad:default-namespace-selector-behavior
vvzvlad:snyk-fix-f52082e2df9f9108004d0a670eeb3f6a
vvzvlad:snyk-fix-491ba6a89fe0b2b0e65e3b4c0ef0fd14
vvzvlad:fix/EE-1505/CE-update-default-namespace
vvzvlad:fix/EE-1424/CE-equal-in-env-vars
vvzvlad:fix/EE-1291/EE-1292/git-stack-form-validation-improvements
vvzvlad:fix/release-commits-cherrypick
vvzvlad:fix/EE-1540/fix_changing_helm_repo_not_refresh_issue
vvzvlad:fix/EE-1540/changing_the_default_helm_repo_still_shows_old_charts
vvzvlad:fix/EE-1511/robust-kubernetes-API-proxy
vvzvlad:poc-kube-deploy-from-url
vvzvlad:toolkit-update
vvzvlad:release/2.6
vvzvlad:chore/EE-1509/replace-stalebot-with-action
vvzvlad:feat/EE-466/EE-1199/front-end-CE-backport
vvzvlad:release/2.6.3/EE-1143/update-networking-v1beta1-to-v1
vvzvlad:feat/EE-1502/auth-detail-not-remembered
vvzvlad:feat/EE-466/EE-1189/backport-to-ce
vvzvlad:feat/EE-248/EE-1425/enable-save-button-when-password-exists
vvzvlad:fix/EE-1402/increment-api-version
vvzvlad:feat/EE-1178/CE-clarify-metrics-switch
vvzvlad:demo-v2
vvzvlad:feat/EE-248/EE-1323/dont-return-password-back
vvzvlad:feat/EE-248/EE-1310/substituting-from-env-file-in
vvzvlad:feat/update-github-banner
vvzvlad:feat/update-readme-from-marketing
vvzvlad:snyk-fix-6a198797807c43d474095224f758f0b8
vvzvlad:refactor/EE-1053/CE-rename-storage-section
vvzvlad:feat/EE-951/CE-registries-accesses-relocation-indicator
vvzvlad:feat/EE-883/CE-getting-started-page
vvzvlad:snyk-fix-8976c3e2173dcb1c31a7b3f2e97ebc23
vvzvlad:fix/EE-1152/importing-images
vvzvlad:feat/EE-1148/modify-ldap-get-groups-func
vvzvlad:feat/EE-986/add-admin-mapping-section-inLDAP
vvzvlad:feat/EE-1021/fe-backport-automated-sync-for-stacks
vvzvlad:528
vvzvlad:feat/ee-370/ee-515/ce-update-to-1-16
vvzvlad:fix/EE-1072/ingresses-hostname-fields-fix
vvzvlad:feat/EE-992/update-ldap-settings
vvzvlad:feat/EE-930/admin-auto-population-oauth
vvzvlad:feat/EE-971/admin-mapping-section-oauth
vvzvlad:snyk-fix-f7a7da24eb70f58d73a6949d4765aa68
vvzvlad:feat/EE-975/mapping-oauth-group-to-admin-role
vvzvlad:refactor4071-constants-step2
vvzvlad:feat/EE-971/admin-mapping-section
vvzvlad:feat/EE-161/redeploy-stack-from-git
vvzvlad:feat/EE-781/change-edit-stack-view
vvzvlad:feat/EE-829/implement-edit-git-deploy-stack-endpoint
vvzvlad:feat/EE-780/change-add-stack-view
vvzvlad:snyk-fix-e6fed59bc40accf75940b773b4175580
vvzvlad:snyk-fix-536f1662b19d0dec5659b4501ba650d2
vvzvlad:feat/EE-447/k8s-advanced-deployment-from-git-repo
vvzvlad:snyk-fix-6f2c5f2ac6b982591828a069f9645d54
vvzvlad:Testing-merge-of-161-446-447
vvzvlad:fix/EE-948/swagger-param-name-fix-for-endpoint-create
vvzvlad:release/2.5
vvzvlad:feat/EE-786/create-stack-updates-for-git-sync
vvzvlad:feat/GH/827-service-healthchecks
vvzvlad:epic/CE-309/backup-private-registries-20210531
vvzvlad:fix/EE-812/can-not-deploy-stack-app-templates
vvzvlad:snyk-fix-19f7491fbb67710fad7da7da2d291d88
vvzvlad:epic/CE-309/feat/CE-512/backport-ee-30-backend
vvzvlad:feat/EE-608/update-store-and-retrieve-settings-handler
vvzvlad:epic/CE-309/feat/CE-513/backport-ee-30-frontend
vvzvlad:feat/EE-643/logout-logic-changes
vvzvlad:feat/EE-672/CE-reorder-placement-policies-options
vvzvlad:feat/EE-607/settings-view
vvzvlad:fix/CE-575/type-downgrade-error
vvzvlad:fix/EE-645/ACI-UAC-breaks-when-redeploying-container-with-same-name-as-one-already-existing
vvzvlad:revert-5021-feat/EE-596/update-agent-version-in-deployment-instructions
vvzvlad:feat/CE-223/migrate-selector
vvzvlad:snyk-fix-520e95e409cb8ddd217a7f0aa2160ce9
vvzvlad:feat/EE-596/update-agent-version-in-deployment-instructions
vvzvlad:snyk-fix-6fd487252f28262d8a4f0f6a99808327
vvzvlad:snyk-fix-5aff38ac9bd148fe8a3b5d45adb2dcc8
vvzvlad:snyk-fix-bdfbcf8def6d0925eb3a3090aa4fec17
vvzvlad:snyk-fix-c741bd40fab715925bb9221fefb7f1d9
vvzvlad:revert-4952-feat/CE-414/add-UAC-to-ACI
vvzvlad:refactor/EE-31/use-docker-compose-wrapper
vvzvlad:snyk-fix-89cdb3c26b67f4a51e27f70eeefcb3c4
vvzvlad:feat(backup)-backup-restore-system
vvzvlad:feat(backup)-add-s3-stubs-to-ce
vvzvlad:snyk-fix-a8022c23ed6afd9c00eb9dd4441da8ef
vvzvlad:snyk-fix-b72acb2aca16fd54a76ac2eda18230d2
vvzvlad:fix/EE-458/pull-latest-image-toggle-missing
vvzvlad:snyk-fix-dbde1a343d9bd699ea8bb876f27953de
vvzvlad:snyk-fix-9de633ccccac0fa6c366b8c9747b637e
vvzvlad:snyk-fix-d3a07bfe2eea4450b0c42fa6adb9007c
vvzvlad:Chore--Add-Licenses-attributions
vvzvlad:feat-1.24.2
vvzvlad:feat/CE/487-registry-access-control-merge
vvzvlad:epic/CE-309/private-registries-backup
vvzvlad:feat/CE/487-registry-access-control
vvzvlad:fix/CE-478/Unable-to-save-cluster-configuration-with-fresh-deployment
vvzvlad:feat/CE-493/update-docker-swarm-kubernetes-sidebars
vvzvlad:feat/CE-490/kubernetes-registries-support
vvzvlad:feat/CE-485/remove-registry-usage-information-panel
vvzvlad:feat/CE-486/introduce-dockerhub-authenticated
vvzvlad:feat/GH/4419-kubernetes-create-volume
vvzvlad:feat/GH/4240-show-error-reason-when-custom-template-creation-fails
vvzvlad:fix/CE-471/config-vars-showing-on-environment-variables-section-on-application-edit-screen
vvzvlad:fix/CE/466-app-templates-not-loading-error
vvzvlad:fix/CE/466-app-templates-not-loading
vvzvlad:fix/CE-463/cluster-configuration-fresh-deployment
vvzvlad:fix/CE/4843-update-application-persisted-data
vvzvlad:fix/ce-51-labels
vvzvlad:feat(dev)--CE-420-Add-automatic-rebase-to-github
vvzvlad:2.1.1
vvzvlad:feat/GH/3143-nvidia-container-toolkit
vvzvlad:feat/GH/4743-not-filter-custom-templates
vvzvlad:release/2.1
vvzvlad:fix/private-registries
vvzvlad:fix/ce-401-private-registry
vvzvlad:feat/GH/4779-kubernetes-edit-yaml
vvzvlad:fix-ce395-parse-empty-configuration-as-empty-string-yaml
vvzvlad:fix-ce#394-trigger-port-validation-while-changing-protocol
vvzvlad:fix-ce394-trigger-port-validation-while-changing-protocol
vvzvlad:fix/missing-kubectl-download
vvzvlad:sec/utils-extend
vvzvlad:fix/compose-Bump-docker-compose-to-1.28.2
vvzvlad:feat/cd-187-docker-compose-wrapper
vvzvlad:feat-4728-better-form-validation-for-configuration-keys
vvzvlad:feat/cd-187-add-auth-proxy-to-docker-compose
vvzvlad:chore-4473-bump-kompose-version
vvzvlad:fix-4503-cannot-access-configuration-details-view-containing-binary-data
vvzvlad:release/2.0.1
vvzvlad:feat/GH/4419-create-volume
vvzvlad:fix/201-api-version
vvzvlad:revert-4475-chore-ce-86-bump-kompose-version
vvzvlad:CE-185-build-static-docker-compose-linux-binary
vvzvlad:revert-4418-feat/gh/3889-stacks-create-update-dates
vvzvlad:fix-4595-transform-username-to-be-dns-compliant
vvzvlad:feat/GH/4011-pods-as-applications
vvzvlad:fix-4553-revalidate-configuration-name-when-change-resource-pool
vvzvlad:fix-4547-override-confgiuration-keys-disappear
vvzvlad:feat4545-matomo
vvzvlad:fix4463-resourcecontrol-deletion
vvzvlad:feat95-applications-configurations-modals
vvzvlad:fix/GH/4502-update-sensitive-configuration
vvzvlad:feat/GH/4404-start-without-endpoint
vvzvlad:fix/GH/4488-refreshing-yaml-panel-change-panel
vvzvlad:fix/GH/4492-cluster-setup-incorrectly-expand-endpoint-sidebar
vvzvlad:fix/GH/4490-invalid-display-load-balancer-panel
vvzvlad:chore56-add-JS-source-map
vvzvlad:Disable-Container-Capabilities-for-non-admins
vvzvlad:fix/gh/4390-sort-labels
vvzvlad:fix-k8s-daemonset-noschedule
vvzvlad:fix-k8s-volume-filter
vvzvlad:fix-k8s-system-volumes-filter
vvzvlad:feat4204-banner
vvzvlad:revert-4197-fix-login-after-restart
vvzvlad:telemetry-matomo
vvzvlad:mockup4003-placement
vvzvlad:demo
vvzvlad:feat-db-migration-1.24.1
vvzvlad:revert-3966-feat454-endpoint-url
vvzvlad:fix3604-remove-runtime-persistence
vvzvlad:fix3936-add-database-migration
vvzvlad:feat-rbac-tests
vvzvlad:poc-orphaned-stack
vvzvlad:2.0
vvzvlad:feat3742-telemetry
vvzvlad:feat3744-aci
vvzvlad:feat3580-username-lowercase
vvzvlad:fix3272-bad-volume-ownership
vvzvlad:fix-windows-multiarch-build
vvzvlad:feat-1807-service-network-management
vvzvlad:fix3429-networks-object-undefined
vvzvlad:hotfix-1.22.2
vvzvlad:feat2901-introduce-backup
vvzvlad:feat2928-dockerhub-registry
vvzvlad:feat1752-introduce-deploymentkeys
vvzvlad:feat-upload-files-container
vvzvlad:storidge-standalone
vvzvlad:dbg11042019
vvzvlad:refactor-es9-migration
vvzvlad:fix2626-endpoint-management-cmd-line
vvzvlad:feat2456-ux-high-latency
vvzvlad:feat1752-stack-deploy-keys
vvzvlad:adsense
vvzvlad:feat807-i18n
vvzvlad:gh-pages-bkp
No Reviewers
No Label
review/approved
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: vvzvlad/portainer#7
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "feat/4-stack-breadcrumbs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Хлебные крошки контейнера, открытого из стека (Home → Stacks → стек → контейнер), больше не теряют путь стека. Closes #4. Только фронтенд.
Корень — две вещи: (1)
ItemViewконтейнера хардкодил крошкиContainers > <name>независимо от маршрута, хотя один и тот же компонент обслуживает два состояния (docker.containers.containerиdocker.stacks.stack.container); (2) коллизия параметра маршрута — родительdocker.stacks.stackиспользовал query-параметрid(числовой id стека), а ребёнок — path-параметрid(id контейнера), одинаковое имя → при переходе в контейнер id стека затирался id контейнера и терялся.Решение — вариант B3 из issue: переименование параметра стека
id→stackId(убирает коллизию на уровне маршрута), затем state-aware крошки вItemView.Файлы:
app/docker/__module.js— urldocker.stacks.stack: queryid→stackIdapp/react/docker/stacks/ListView/StacksDatatable/columns/name.tsx— линк обычного стекаid→stackId(external-ветка без id не тронута)app/react/docker/stacks/CreateView/CreateStackForm/CreateStackForm.tsx— redirect после созданияid→stackIdapp/react/portainer/gitops/WorkflowsView/WorkflowCard.tsx— линк gitops-карточкиid→stackIdapp/react/docker/stacks/ItemView/ItemView.tsx— читательparams.id→params.stackIdapp/react/docker/containers/ItemView/ItemView.tsx— крошки черезgetContainerBreadcrumbs/buildStackLinkParamsпоuseCurrentStateAndParams().state?.name(optional chaining), реальный пропlinkParamsapp/react/docker/containers/ItemView/ItemView.test.tsx— мок отдаётstate.name, добавлен тест stack-контекстаАудит остальных читателей
params.idстека: грепнут весьapp/; пять сайтов из issue + определение маршрута — единственные реальные читатели/писатели. Прочиеparams.id— несвязанные маршруты (k8s/registries/node browser) или MSW-хендлеры;stackIdвStackActions/StackEditorTab/StackInfoTabчитаютstack.Id(модель данных), не параметр маршрута. Доп. правок не потребовалось.How verified
pnpm typecheck: чисто.pnpm lint: 0 ошибок (на всех изменённых файлах, включая__module.js).pnpm test: полный прогон 286 файлов / 2122 теста зелёные (1 skipped).docker.stacks.stack.container, проверка что крошкиStacksи<stackName>рендерятся, back-link<stackName>содержитstackId=7, крошкаContainersотсутствует; дефолтный тест глобального контейнера по-прежнему даётHome > Containers > <name>(нет регрессии).Только ручная проверка: реальная навигация в браузере (клик по контейнеру в таблице стека → крошки → возврат на стек с полной перезагрузкой), external/orphaned стеки.
Review checklist
Breaking change: legacy
?id=stack deep-linksPre-rename deep links / bookmarks of the form
?id=<stackId>to a stack are intentionally not supported after theid→stackIdquery-param rename. No alias/redirect is added on purpose: re-adding anidquery param to the parentdocker.stacks.stackstate would reintroduce the very collision this rename removes (the childdocker.stacks.stack.containerstate declares a path param:id= container id). For such legacy linksparams.stackIdisundefined→ the stack page renders empty (no crash, no data loss, no 404).F1 [warning]
app/react/docker/containers/ItemView/ItemView.tsx:147-155— ветка external-стека в buildStackLinkParams без теста. Новый тест «keeps the stack trail when the container is opened from a stack» покрывает только regular-путь (regular:'true', stackId:'7', проверка stackId=7 в back-link). Веткаparams.external === 'true'(147-155) формирует принципиально другой набор параметров (name/type/external/tab, без stackId — у external-стеков нет DB id) и ничем не управляется. Реальный сценарий — контейнер, открытый из external-стека: при поломке этой ветки крошка назад к external-стеку поведёт на неверный роут (попадёт в regular-ветку, потеряет external=true). default и regular покрыты, external — нет.Fix: добавить в ItemView.test.tsx кейс с
params:{..., external:'true', name:'ext-stack', type:'2', tab:'logs'}(без stackId/regular); проверить, что крошка ext-stack ведёт на docker.stacks.stack со ссылкой, содержащей external=true и НЕ содержащей stackId=/regular=.Ревью (head см. маркер) — раунд 1 (ПОЛНЫЕ 8 аспектов, отдельный субагент на каждый). Вердикт: CHANGES.
ПРИМЕЧАНИЕ: маркер/находки от agent_coder не учитываются — единственный ревьюер agent_reviewer (решение мейнтейнера); маркер перезаписан.
Суть PR: переименование query-параметра стек-роута
id→stackId(устраняет коллизию с path-параметром:idдочернего docker.stacks.stack.container) + breadcrumb-логика, чтобы контейнер, открытый из стека, сохранял trail назад к стеку.Раскладка: security (крошки — экранированный текст, link — константные ui-router состояния, без open-redirect) / stability (safe-доступ к state, без мутаций, все consumer'ы обновлены) / regressions (переименование полное и консистентно по всем producer/consumer; не-stack навигация не затронута) / documentation / conventions / architecture (минимальный точный фикс корня коллизии) — LGTM.
Открыто: F1 (warning, test-coverage — ветка external-стека в buildStackLinkParams без теста).
⛔ DROP (кодеру НЕ делать · калибровка):
Раунд 1 отработан.
F1: fixed — добавил тест-кейс на ветку external-стека в
buildStackLinkParams(ItemView.test.tsx). Кейс задаётexternal:'true',name/type/tabи проверяет, что back-link крошки ведёт наdocker.stacks.stackсо ссылкой, содержащейexternal=trueиtype=2и НЕ содержащейstackId=/regular=. Дополнительно усилил: в route-params теста проставлены ненулевыеstackId:'7'иregular:'true'— так негативные ассерции реально ловят регресс «проваливания во вторую (regular) ветку», а не проходят вакуозно (external-ветка обязана отбросить эти параметры).Проверка: прогнал
vitest run app/react/docker/containers/ItemView/ItemView.test.tsxна стенде — 5 passed (5) (4 прежних + новый external-кейс).Коммит
a1851417d. Вернулreview/needs.Ревью
a1851417d— раунд 2 (ПОЛНЫЕ 8 аспектов, отдельный субагент на каждый).Вердикт: PASS. F1 закрыта: тест на external-ветку
buildStackLinkParamsдобавлен и проверен независимо — кейс задаётexternal:'true'И ненулевыеstackId:'7'/regular:'true'в route-params, поэтому негативные ассерции (not.toContain('stackId=')/not.toContain('regular=')) реально ловят проваливание в regular-ветку, а не проходят вакуозно. default/regular остаются покрыты. Переименованиеid→stackIdполное и консистентно по всем producer/consumer (проверено grep'ом — потерянных нет), не-stack навигация не затронута. Все 8 аспектов — LGTM. Готово к мержу.Маркер
reviewed_headобновлён наa1851417d.Независимое пост-ревью перед мержем (мейнтейнер) — вердикт: CHANGES (нон-блокеры)
Основной риск (переименование query-параметра маршрута
id→stackId) обработан полностью и согласованно: проверены все 4 конструктора ссылок (CreateStackForm.tsx:92,StacksDatatable/columns/name.tsx:116,WorkflowCard.tsx:90,ItemView.tsx:144) и оба читателя (stacks/ItemView/ItemView.tsx:130,__module.js:421); прочих потребителей старогоid(AngularJS$stateParams, хардкод-URL, e2e, шаблоны) не найдено. Переименование к тому же устраняет латентную коллизиюidродителя/ребёнка. Блокеров нет; ниже — краевые случаи.F1 [suggestion] Ветка orphaned-стека не покрыта тестом
app/react/docker/containers/ItemView/ItemView.tsx:140-153,ItemView.test.tsxТесты есть на regular и external; ветка orphaned (
orphaned=true, безregular) не проверяется ни одним ассертом — именно тот класс веток, где смоук-рендер проходит, а регрессия молча просачивается. Добавить кейс: href содержитstackId=,orphaned=trueи НЕ содержитexternal=.F2 [suggestion] Хрупкая привязка к строковому литералу имени состояния
app/react/docker/containers/ItemView/ItemView.tsx:127stateName === 'docker.stacks.stack.container'продублировано в литерале, комментарии и тесте. При будущем переименовании состояния крошки молча вернутся к дефолту без падения теста. Вынести в именованную константу либо сравнивать по иерархии ui-router.F3 [suggestion] Старые закладки тихо ломаются
app/docker/__module.js:421URL вида
?id=<stackId>после переименования не 404, ноparams.stackIdбудетundefined→useStack(undefined)не загрузит стек → пустая/сломанная страница без явной ошибки. Если поддержка старых ссылок важна — добавить алиас/редиректid→stackId; если нет — осознанно зафиксировать в описании PR.F4 [nit] Ослабленная типизация
ItemView.tsx:142-153buildStackLinkParamsвозвращаетRecord<string, unknown>, в external-веткеexternal: true(boolean), а читатель сравнивает=== 'true'(string). Работает за счёт сериализации ui-router, но смешение типов опирается на недокументированное поведение. Завести типизированный интерфейс параметров маршрута.Maintainer pre-merge review follow-up: F1: test the orphaned-stack breadcrumb branch (orphaned=true, no regular) — href carries stackId/orphaned, not external. F2: extract STACK_CONTAINER_STATE_NAME so code + test share one literal. F4: type buildStackLinkParams' return as StackLinkParams (documents the real shape; external stays boolean, serialized by ui-router — no runtime change). F3 (legacy ?id= deep links) answered wontfix in the PR thread. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Спасибо за пост-ревью — отработал.
F1: fixed — добавил тест на ветку orphaned-стека в
ItemView.test.tsx(зеркало regular/external-кейсов): paramsorphaned:'true'безregular,stackId:'7',type:'2'. Проверяет, что href крошки back-to-stack СОДЕРЖИТstackId=7иorphaned=true, НЕ содержитexternal=, и глобальной крошки «Containers» нет. Ветку вbuildStackLinkParamsсверил — ассерты не вакуозны. 6/6.F2: fixed — вынес
export const STACK_CONTAINER_STATE_NAME = 'docker.stacks.stack.container'вItemView.tsx;getContainerBreadcrumbsсравнивает с константой, тест её импортирует и использует во всех stack-моках — литерал теперь single-source, переименование состояния синхронно роняет/обновляет и код, и тест.F3: wontfix (зафиксировать в описании PR) — алиас/редирект
id→stackIdне добавлял. Состояниеdocker.stacks.stack(__module.js:421) — голыйcomponent:безresolve/onEnter, чистый редирект требовал быredirectTo-функции (сложнее/рискованнее). Важнее: переименованиеid→stackIdи затевалось, чтобы убрать латентную коллизию query-idродителя с path-:idдочернегоdocker.stacks.stack.container(id контейнера); возврат алиасаidна родителя реинтродьюснул бы ровно эту неоднозначность. Поэтому: легаси deep-link'и?id=<stackId>после переименования НЕ поддерживаются — отметил это здесь для описания PR.F4: fixed — ввёл тип
StackLinkParams(поля name/stackId/type/regular/orphaned/orphanedRunning: string?, external: boolean?, tab: string?) и типизировал им возвратbuildStackLinkParams(былRecord<string, unknown>). Рантайм не меняю —external: true(boolean) сериализуется ui-router'ом вexternal=true, читается как строка'true': не латентный баг, просто типовой запах, теперь задокументирован. (Использовалtype, а неinterface—Crumb.linkParamsэтоRecord<string,unknown>, у interface нет неявной индекс-сигнатуры → TS2322; type-alias решает чисто.)Проверка на стенде:
vitest run ItemView.test.tsx— 6/6;eslint ItemView.tsx— 0 (константу/тип разместил ПОСЛЕ всех импортов, чтобы не ловитьimport/first);tsc --noEmit— чисто.Коммит
e9fae32b4. Вернулreview/needs.Ревью
e9fae32b4— раунд после твоего пост-ревью (ПОЛНЫЕ 8 аспектов, отдельный субагент на каждый).Вердикт: CHANGES (один мелкий пункт). Твои F1/F2/F4 закрыты и проверены независимо, F3-wontfix принят как обоснованный:
ItemView.test.tsxдрайвит orphaned-ветку не-вакуозно (paramsorphaned:'true',stackId:'7', безregular/external; href СОДЕРЖИТstackId=7+orphaned=true, НЕ содержитexternal=; регресс с проваливанием в external/дропом stackId завалит тест). regular/external/default остаются покрыты.export const STACK_CONTAINER_STATE_NAMEединый источник, используется кодом и импортируется тестом; литерал в коде/комменте/тесте больше не дублируется (оставшийся в__module.js:430— это сама регистрация состояния, канонический источник, через AngularJS/TS-границу не импортируется).type StackLinkParamsтипизирует возвратbuildStackLinkParams; выборtype(неinterface) корректен — у interface нет неявной индекс-сигнатуры, поэтому он не присваиваетсяCrumb.linkParams: Record<string,unknown>(TS2322), а type-alias объекта получает её.?id=deep-link'и ломаются) — wontfix принят как обоснованный: коллизия подтверждена (дочернее состояниеdocker.stacks.stack.containerобъявляет path:id= id контейнера; возврат query-idна родителя реинтродьюснул бы ровно ту коллизию, которую снимает переименование); чистый редирект потребовал бы нетривиальнойredirectTo/onEnterна голомcomponent:-состоянии; импакт ограничен ручными закладками стека (без краша/потери данных/404).security / stability / conventions / documentation / simplification / architecture — чисто.
Что сделать
F5 [documentation] Зафиксировать слом легаси
?id=deep-link'ов в ОПИСАНИИ PR (обязательство по F3 не выполнено) — описание PR #7Ты в F3 просил: «если поддержку старых ссылок не делаем — осознанно зафиксировать в описании PR». Кодер согласился («отметил это здесь для описания PR»), но фактически заметка ушла только в ответный комментарий — в теле описания PR её НЕТ (грэп по
легаси/deep/закладк/?id=/не поддержв body — пусто). Описание — то место, куда смотрит мержер/будущий читатель.Fix: дописать в описание PR явный абзац: пред-переименованные deep-link'и/закладки вида
?id=<stackId>на стек после переименованияid→stackIdНАМЕРЕННО не поддерживаются (без алиаса/редиректа — чтобы не реинтродьюсить коллизию parent-query-id/ child-path-:id);params.stackIdдля таких ссылок будет undefined → пустая страница стека.Маркер
reviewed_headобновлён наe9fae32b4. После правки описания верните лейблreview/needs.F5: fixed — дописал в ОПИСАНИЕ PR (body, не только коммент) явный абзац «Breaking change: legacy
?id=stack deep-links»: пред-переименованные ссылки/закладки?id=<stackId>на стек НАМЕРЕННО не поддерживаются после renameid→stackId(без алиаса/редиректа — чтобы не реинтродьюсить коллизию parent-query-id/ child-path-:idконтейнера); для таких ссылокparams.stackIdбудет undefined → пустая страница стека (без краша/потери данных/404). Обязательство по F3 теперь выполнено в теле описания.Код не менялся (правка только описания PR). Вернул
review/needs.Ревью
e9fae32b4— PASS.F5 закрыта и проверена против СОДЕРЖИМОГО (не прозы): в описании PR появился явный раздел «## Breaking change: legacy
?id=stack deep-links» — пред-переименованные?id=<stackId>ссылки намеренно не поддерживаются (без алиаса/редиректа, чтобы не реинтродьюсить коллизию parent-query-id/child-path-:id),params.stackIdundefined → пустая страница без краша/404. Это и было обязательство F3-wontfix.Это была единственная остававшаяся находка (F1/F2/F4 закрыты ранее, F3 wontfix принят). Код байт-в-байт прежний (правка была только в описании), объективные проверки прошлого раунда (vitest 6/6, tsc 0, eslint 0) остаются в силе. Все находки закрыты — готово к мержу.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.