- Sep 06, 2024
-
-
Archish authored
-
- Aug 28, 2024
-
-
Archish authored
-
- Jul 15, 2024
-
-
Ash McKenzie authored
-
- May 11, 2023
-
-
Joe Woodward authored
Prior to this change personal access tokens without a ttl would never expire. In Gitlab 15.4 we deprecated non-expiring tokens and are scheduled for removal in 16.0. https://gitlab.com/gitlab-org/gitlab/-/issues/369122 This change alters the gitlab-shell command for creating tokens to ensure add a default limit of 30 days. Closes https://gitlab.com/gitlab-org/gitlab-shell/-/issues/640
-
- Jan 30, 2023
-
-
Steve Azzopardi authored
What --- Make the retryableHTTP client introduced in https://gitlab.com/gitlab-org/gitlab-shell/-/merge_requests/703 the default HTTP client. Why --- In https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979#note_1254964426 we've seen a 99% error reduction on `git` commands from `gitlab-shell` when the retryableHTTP client is used. This has been running in production for over 2 weeks in `us-east1-b` and 5 days fleet-wide so we should be confident that this client works as expected. Reference: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979 Signed-off-by:
Steve Azzopardi <sazzopardi@gitlab.com>
-
- Jan 12, 2023
-
-
Steve Azzopardi authored
What --- - Update the `client.HttpClient` fields to have `http.Client` and `retryablehttp.Client`, one of them will be `nil` depending on the feature flag toggle. - Create new method `newRetryableRequest` which will create a `retryablehttp.Request` and use that if the `FF_GITLAB_SHELL_RETRYABLE_HTTP` feature flag is turned on. - Add checks for `FF_GITLAB_SHELL_RETRYABLE_HTTP` everywhere we use the http client to use the `retryablehttp.Client` or the default `http.Client` - New job `tests-integration-retryableHttp` to run the integraiton tests with the new retryablehttp client. We didn't update go tests because some assertions are different and will break table driven tests. Why --- As discussed in https://gitlab.com/gitlab-org/gitlab-shell/-/merge_requests/703#note_1229645097 we want to put the client behind a feature flag, not just the retry logic. This does bring extra risk for accessing a `nil` field but there should be checks everytime we access `RetryableHTTP` and `HTTPClient`. Reference: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979 Signed-off-by:
Steve Azzopardi <sazzopardi@gitlab.com>
-
Steve Azzopardi authored
What --- Change the default `HTTP.Client` to `github.com/hashicorp/go-retryablehttp.Client` to get automatic retries and exponential backoff. We retry the request 2 times resulting in 3 attempts of sending the request, the min retry wait is 1 second, and the maximum is 15 seconds. Hide the retry logic behind a temporary feature flag `FF_GITLAB_SHELL_RETRYABLE_HTTP` to easily roll this out in GitLab.com. When we verify that this works as expected we will remove `FF_GITLAB_SHELL_RETRYABLE_HTTP` and have the retry logic as the default logic. Why --- In https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979 users end up seeing the following errors when trying to `git-clone(1)` a repository locally on in CI. ```shell remote: =============================== remote: remote: ERROR: Internal API unreachable remote: remote: ================================ ``` When we look at the application logs we see the following error: ```json { "err": "http://gitlab-webservice-git.gitlab.svc:8181/api/v4/internal/allowed": dial tcp 10.69.184.120:8181: connect: connection refused", "msg": "Internal API unreachable"} ``` In https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979#note_1222670120 we've correlated these `connection refused` errors with infrastructure events that remove the git pods that are hosting `gitlab-webservice-git` service. We could try to make the underlying infrastructure more reactive to these changes as suggested in https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979#note_1225164944 but we can still end up serving bad requests. Implementing retry logic for 5xx or other errors would allow users to still be able to `git-clone(1)` reposirories, although it being slower. This is espically important during CI runs so users don't have to retry jobs themselves. Reference: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/7979 Closes: https://gitlab.com/gitlab-org/gitlab-shell/-/issues/604 Signed-off-by:
Steve Azzopardi <sazzopardi@gitlab.com>
-
- Jul 20, 2022
-
-
Igor Drozdov authored
Use a single channel to handle both Push Auth and OTP results
-
- Jul 18, 2022
-
-
When `2fa_verify` command is executed: - A user is asked to enter OTP - A blocking call for push auth is performed Then: - If the push auth request fails, the user is still able to enter OTP - If OTP is invalid, the `2fa_verify` command ends the execution - If OTP is valid or push auth request succeeded, then the user is successfully authenticated - If 30 seconds passed while no OTP or Push have been provided, then the `2fa_verify` command ends the execution
-
- Jul 01, 2021
-
-
Valery Sizov authored
Geo SSH proxy push currently impossible when the only action that happens is branch removal. This fix works in a way that it waits for flush packet from git and then checks pkt lines to determine is pack data is expected. The thing is that git doesnt send pack data when only branch removal happens. Explanation is in https://gitlab.com/gitlab-org/gitlab/-/issues/330494
-
- Jun 29, 2021
-
-
Nick Thomas authored
When the shell environment includes SSH_CONNECTION, one spec fails as the way we're stubbing the environment to the subprocess doesn't wipe out the pre-existing variable. This commit changes how we do it so the spec passes even in this environment.
-
- Jan 29, 2021
-
-
Manoj Memana Jayakumar authored
This change removes session duration information from output of 2fa_verify command
-
- Dec 10, 2020
-
-
Imre Farkas authored
-
- Aug 17, 2020
-
-
Taylan Develioglu authored
Implements the feature requested in gitlab-org/gitlab#19672 This requires the internal api counterpart in gitlab-org/gitlab!36302 to be merged first. It can be used as follows: ``` censored@censored-VirtualBox:~/git/gitlab$ ssh git@gitlab-2004 personal_access_token remote: remote: ======================================================================== remote: remote: Usage: personal_access_token <name> <scope1[,scope2,...]> [ttl_days] remote: remote: ======================================================================== remote: censored@censored-VirtualBox:~/git/gitlab$ ssh git@gitlab-2004 personal_access_token newtoken read_api,read_repository 30 Token: aAY1G3YPeemECgUvxuXY Scopes: read_api,read_repository Expires: 2020-08-07 ```
-
- Apr 17, 2020
-
-
Ash McKenzie authored
-
Ash McKenzie authored
-
- Mar 11, 2020
-
-
Stan Hu authored
This restores the previous behavior of logging the success and failures of internal HTTP requests. Part of https://gitlab.com/gitlab-org/gitlab/issues/207916
-
- Dec 24, 2019
-
-
Ash McKenzie authored
-
- Oct 23, 2019
-
-
- Oct 15, 2019
-
-
Nick Thomas authored
-
Nick Thomas authored
-
Nick Thomas authored
-
- Oct 03, 2019
-
-
Małgorzata Ksionek authored
-
- Oct 01, 2019
-
-
Małgorzata Ksionek authored
-
Małgorzata Ksionek authored
-
- Sep 04, 2019
-
-
Patrick Bajao authored
-
- Aug 09, 2019
-
-
Patrick Bajao authored
Build this command when `Executable` name is `gitlab-shell-authorized-principals-check`. Feature flag is the same name.
-
- Aug 08, 2019
-
-
Patrick Bajao authored
Build this command when `Executable` name is `gitlab-shell-authorized-keys-check`. Feature flag is the same name.
-
- Aug 02, 2019
-
-
Patrick Bajao authored
This struct is responsible for determining the name and root dir of the executable. The `RootDir` property will be used to find the config. The `Name` property will be used to determine what `Command` and `CommandArgs` to be built.
-
- Jul 29, 2019
-
-
Patrick Bajao authored
Rename the ruby scripts to have `-ruby` suffix and add a symlink for both to `./gitlab-shell`. The executable name will be used to determine how args will be parsed. For now, we only parse the arguments for gitlab-shell commands. If the executable is `gitlab-shell-authorized-keys-check` or `gitlab-shell-authorized-principals-check`, it'll always fallback to the ruby version. Ruby specs test the ruby script, the fallback from go to ruby and go implementation of both (still pending).
-
- Jun 06, 2019
-
-
Igor Drozdov authored
-
- May 31, 2019
-
-
Igor Drozdov authored
-
- May 22, 2019
-
-
Igor Drozdov authored
-
- May 07, 2019
-
-
Stan Hu authored
Restores some of the changes in https://gitlab.com/gitlab-org/gitlab-shell/merge_requests/257, but still targets Rubocop for 2.3.
-
- Apr 30, 2019
-
-
Christian Ratzenhofer authored
-
- Apr 04, 2019
-
-
Ash McKenzie authored
Using ConsoleHelper::write_stderr
-
Ash McKenzie authored
.write_stderr .format_for_stderr
-
- Apr 03, 2019
-
-
Jacob Vosmaer authored
-
- Mar 31, 2019
-
-
Luke Duncalfe authored
print_warnings is now using that method in order to print a large formatted warning message, so renaming the method to be less tied to the broadcast message functionality.
-
- Mar 28, 2019
-
-
Luke Duncalfe authored
-