diff --git a/api/http/handler/stacks/stack_update_git.go b/api/http/handler/stacks/stack_update_git.go index cfafacbf0..da4df4e42 100644 --- a/api/http/handler/stacks/stack_update_git.go +++ b/api/http/handler/stacks/stack_update_git.go @@ -146,6 +146,10 @@ func (handler *Handler) stackUpdateGit(w http.ResponseWriter, r *http.Request) * Username: payload.RepositoryUsername, Password: password, } + _, err = handler.GitService.LatestCommitID(stack.GitConfig.URL, stack.GitConfig.ReferenceName, stack.GitConfig.Authentication.Username, stack.GitConfig.Authentication.Password) + if err != nil { + return &httperror.HandlerError{StatusCode: http.StatusInternalServerError, Message: "Unable to fetch git repository", Err: err} + } } if payload.AutoUpdate != nil && payload.AutoUpdate.Interval != "" { diff --git a/api/http/handler/stacks/update_kubernetes_stack.go b/api/http/handler/stacks/update_kubernetes_stack.go index e5d659a52..9ce74cb6c 100644 --- a/api/http/handler/stacks/update_kubernetes_stack.go +++ b/api/http/handler/stacks/update_kubernetes_stack.go @@ -74,6 +74,10 @@ func (handler *Handler) updateKubernetesStack(r *http.Request, stack *portainer. Username: payload.RepositoryUsername, Password: password, } + _, err := handler.GitService.LatestCommitID(stack.GitConfig.URL, stack.GitConfig.ReferenceName, stack.GitConfig.Authentication.Username, stack.GitConfig.Authentication.Password) + if err != nil { + return &httperror.HandlerError{StatusCode: http.StatusInternalServerError, Message: "Unable to fetch git repository", Err: err} + } } else { stack.GitConfig.Authentication = nil } diff --git a/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.controller.js b/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.controller.js index 1bc7db19e..106446b74 100644 --- a/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.controller.js +++ b/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.controller.js @@ -25,21 +25,13 @@ class GitFormComposeAuthFieldsetController { if (!auth) { this.authValues.username = this.model.RepositoryUsername; this.authValues.password = this.model.RepositoryPassword; - this.onChange({ - ...this.model, - RepositoryAuthentication: true, - RepositoryUsername: '', - RepositoryPassword: '', - }); - - return; } this.onChange({ ...this.model, - RepositoryAuthentication: false, - RepositoryUsername: this.authValues.username, - RepositoryPassword: this.authValues.password, + RepositoryAuthentication: auth, + RepositoryUsername: auth ? this.authValues.username : '', + RepositoryPassword: auth ? this.authValues.password : '', }); } diff --git a/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.html b/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.html index da5761f04..bc6f762a4 100644 --- a/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.html +++ b/app/portainer/components/forms/git-form/git-form-auth-fieldset/git-form-auth-fieldset.html @@ -41,7 +41,7 @@ class="form-control" ng-model="$ctrl.model.RepositoryPassword" name="repository_password" - placeholder="personal access token" + placeholder="*******" ng-change="$ctrl.onChangePassword($ctrl.model.RepositoryPassword)" ng-required="!$ctrl.isEdit" data-cy="component-gitPasswordInput" diff --git a/app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html b/app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html index bb9c6585e..f7fe3789a 100644 --- a/app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html +++ b/app/portainer/components/forms/stack-redeploy-git-form/stack-redeploy-git-form.html @@ -38,7 +38,7 @@ class="btn btn-sm btn-primary" ng-click="$ctrl.submit()" ng-if="!$ctrl.formValues.AutoUpdate.RepositoryAutomaticUpdates" - ng-disabled="$ctrl.isSubmitButtonDisabled() || $ctrl.state.hasUnsavedChanges || !$ctrl.redeployGitForm.$valid" + ng-disabled="$ctrl.isSubmitButtonDisabled() || $ctrl.state.hasUnsavedChanges || !$ctrl.redeployGitForm.$valid || ($ctrl.formValues.RepositoryAuthentication && !$ctrl.formValues.RepositoryPassword)" style="margin-top: 7px; margin-left: 0;" button-spinner="$ctrl.state.redeployInProgress" analytics-on