summaryrefslogtreecommitdiff
path: root/go/cmd/gitlab-shell
Commit message (Collapse)AuthorAgeFilesLines
* Move go code up one levelNick Thomas2019-10-181-44/+0
|
* Remove feature flags and the fallback commandNick Thomas2019-09-201-2/+0
|
* Replace symlinks with actual binariesPatrick Bajao2019-08-151-1/+1
| | | | | | | | | | | | | | | | | | | We had `gitlab-shell-authorized-keys-check` and `gitlab-shell-authorized-principals-check` as symlinks to `gitlab-shell` before. We determine the `Command` and `CommandArgs` that we build based on the `Name` of the `Executable`. We also use that to know which fallback ruby executable should we fallback to. We use `os.Executable()` to do that. `os.Executable()` behaves differently depending on OS. It may return the symlink or the target's name. That can result to a buggy behavior. The fix is to create binaries for each instead of using a symlink. That way we don't need to rely on `os.Executable()` to get the name. We pass the `Name` of the executable instead.
* Add Executable struct181-migrate-gitlab-shell-checks-fallbackPatrick Bajao2019-08-021-22/+5
| | | | | | | | | | 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.
* Support falling back to ruby version of checkersPatrick Bajao2019-07-291-16/+2
| | | | | | | | | | | | | | 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).
* Respect GITLAB_SHELL_DIR in the Go versionNick Thomas2019-06-041-0/+4
|
* Pass readWriter to Command constructorIgor Drozdov2019-05-201-3/+3
|
* Pass the root directory into the fallback commandNick Thomas2019-04-121-5/+6
|
* Correctly determine the root directory for gitlab-shellNick Thomas2019-04-121-11/+24
| | | | Credit to https://gitlab.com/ejiek for spotting this one.
* Provide go implementation for 2fa_recovery_codes commandIgor2019-03-211-11/+11
|
* Wrap Stderr & Stdout in a reporter structBob Van Landuyt2019-03-151-8/+11
| | | | | The reporter struct can be used for passing around and reporting to the io.Writer of choice.
* Don't fall back to ruby for non SSH connectionsbvl-feature-flag-commandsBob Van Landuyt2019-01-151-4/+3
| | | | | When SSH_CONNECTION is not set, we don't fall back to ruby, but instead fail directly in go writing the error to stderr.
* Allow enabling gitlab-shell "discover"-featureBob Van Landuyt2019-01-151-17/+18
| | | | | | | | | | | | | | | | | | | This adds the possibility to enable features for GitLab shell. The first feature being recognized is "Discover": It's the command that is executed when running `ssh git@gitlab.example.com` and is called without a command. The gitlab key id or username is already parsed from the command line arguments. Currently we only support communicating with GitLab-rails using unix sockets. So features will not be enabled if the GitLab-url is using a different protocol. The url for this read from the config yaml. Pending ruby-specs have been added for the gitlab-shell command. Refactor to have separate command packages
* Allow the config directory to be specifiedNick Thomas2018-09-281-10/+17
|
* Specify a richer scheme to run the migration withNick Thomas2018-09-281-15/+28
|
* Initial feature-flagged go/ruby switchNick Thomas2018-09-281-0/+36