Skip to content

Replace symlinks with actual binaries

Patrick Bajao requested to merge 206-quick-fix into master

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.

This implements the quick fix mentioned in #206 (comment 203949283) so you can see duplicated code in go/cmd/gitlab-shell-authorized-keys-check/main.go and go/cmd/gitlab-shell-authorized-principals-check/main.go.

Closes #206 (closed)

Edited by Patrick Bajao

Merge request reports