<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-shell.git/cmd/gitlab-shell, branch tmp-kerberos-testing</title>
<subtitle>gitlab.com: gitlab-org/gitlab-shell.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/'/>
<entry>
<title>Draft: Kerberos changes for testing purposes</title>
<updated>2022-11-24T10:55:00+00:00</updated>
<author>
<name>Igor Drozdov</name>
<email>idrozdov@gitlab.com</email>
</author>
<published>2022-11-24T10:55:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=e50d6d0b6206e37fb5e0d19eae4a3688ddb28ba2'/>
<id>e50d6d0b6206e37fb5e0d19eae4a3688ddb28ba2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>go: Bump major version to v14</title>
<updated>2022-07-05T06:44:14+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>psteinhardt@gitlab.com</email>
</author>
<published>2022-07-05T06:43:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=822e49b34afbc2092ae189091d693ae7867a8e5a'/>
<id>822e49b34afbc2092ae189091d693ae7867a8e5a</id>
<content type='text'>
While gitlab-shell currently has a major version of v14, the module path
it exposes is not using that major version like it is required by the Go
standard. This makes it impossible for dependents to import gitlab-shell
as a dependency without using a commit as version.

Fix this by changing the module path of gitlab-shell to instead be
`gitlab.com/gitlab-org/gitlab-shell/v14` and adjust all imports
accordingly.

Changelog: fixed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While gitlab-shell currently has a major version of v14, the module path
it exposes is not using that major version like it is required by the Go
standard. This makes it impossible for dependents to import gitlab-shell
as a dependency without using a commit as version.

Fix this by changing the module path of gitlab-shell to instead be
`gitlab.com/gitlab-org/gitlab-shell/v14` and adjust all imports
accordingly.

Changelog: fixed
</pre>
</div>
</content>
</entry>
<entry>
<title>Use labkit for FIPS check</title>
<updated>2022-05-05T15:40:30+00:00</updated>
<author>
<name>Igor Drozdov</name>
<email>idrozdov@gitlab.com</email>
</author>
<published>2022-04-27T09:01:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=a139de096400f6054f76fd7c9466407ee2e7fc53'/>
<id>a139de096400f6054f76fd7c9466407ee2e7fc53</id>
<content type='text'>
New version of LabKit provides FIPS checks that we can use instead
of the custom code
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New version of LabKit provides FIPS checks that we can use instead
of the custom code
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for FIPS encryption</title>
<updated>2022-04-18T19:16:22+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2022-04-18T19:11:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=3a17a8de7656d18b9f110f7657b6b86bc4dcafe6'/>
<id>3a17a8de7656d18b9f110f7657b6b86bc4dcafe6</id>
<content type='text'>
This commit adds support of using a FIPS-validated SSL library with
compiled Go executables when `FIPS_MODE=1 make` is run. A Go compiler
that supports BoringSSL either directly (e.g. the `dev.boringcrypto`
branch) or with a dynamically linked OpenSSL
(e.g. https://github.com/golang-fips/go) is required.

This is similar to the changes to support FIPS in GitLab Runner and in
GitLab Pages:
https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/716

Changelog: added
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit adds support of using a FIPS-validated SSL library with
compiled Go executables when `FIPS_MODE=1 make` is run. A Go compiler
that supports BoringSSL either directly (e.g. the `dev.boringcrypto`
branch) or with a dynamically linked OpenSSL
(e.g. https://github.com/golang-fips/go) is required.

This is similar to the changes to support FIPS in GitLab Runner and in
GitLab Pages:
https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/716

Changelog: added
</pre>
</div>
</content>
</entry>
<entry>
<title>Reuse Gitaly conns and Sidechannel</title>
<updated>2022-03-07T13:54:15+00:00</updated>
<author>
<name>Igor Drozdov</name>
<email>idrozdov@gitlab.com</email>
</author>
<published>2022-02-18T10:10:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=e1ddbdd161a28ff53ca4d3b3f0fc4fa19687d80b'/>
<id>e1ddbdd161a28ff53ca4d3b3f0fc4fa19687d80b</id>
<content type='text'>
When gitlab-sshd has been introduced we've started running our
own SSH server. In this case we're able to cache and reuse
Gitaly connections and Registry.

It helps to reduce memory usage.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When gitlab-sshd has been introduced we've started running our
own SSH server. In this case we're able to cache and reuse
Gitaly connections and Registry.

It helps to reduce memory usage.
</pre>
</div>
</content>
</entry>
<entry>
<title>Suppress internal errors in client output</title>
<updated>2021-12-28T21:06:19+00:00</updated>
<author>
<name>Will Chandler</name>
<email>wchandler@gitlab.com</email>
</author>
<published>2021-12-10T14:55:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=3a8bab437d8d0fd9bfa29bc5edd07ae5903af84d'/>
<id>3a8bab437d8d0fd9bfa29bc5edd07ae5903af84d</id>
<content type='text'>
Until recently, Gitaly was silently swallowing any errors returned by
SSH `git upload-pack` processes. Clients would still receive stderr
output and a non-zero return code, but Gitlab-Shell would receive error
as nil and log success.

With 9deaf47f1ecb00f0f36d18ee4a0fb1576f5a0efe Gitaly will now return an
error when git fails, but this causes Gitlab-Shell to print out the
GRPC error code as a message to the client:

&gt; fatal: couldn't find remote ref not-a-real-ref
&gt; fatal: the remote end hung up unexpectedly
&gt; remote:
&gt; remote:
&gt; ========================================================================
&gt; remote:
&gt; remote: rpc error: code = Internal desc = SSHUploadPack: exit status 128
&gt; remote:
&gt; remote:
&gt; ========================================================================
&gt; remote:

The `remote:` text gives no additional context for the user and adds
clutter.

This commit suppresses the additional message added by Gitlab-Shell on
failure when the error type is `Internal`, returning client output to
the format it was prior to the Gitaly change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until recently, Gitaly was silently swallowing any errors returned by
SSH `git upload-pack` processes. Clients would still receive stderr
output and a non-zero return code, but Gitlab-Shell would receive error
as nil and log success.

With 9deaf47f1ecb00f0f36d18ee4a0fb1576f5a0efe Gitaly will now return an
error when git fails, but this causes Gitlab-Shell to print out the
GRPC error code as a message to the client:

&gt; fatal: couldn't find remote ref not-a-real-ref
&gt; fatal: the remote end hung up unexpectedly
&gt; remote:
&gt; remote:
&gt; ========================================================================
&gt; remote:
&gt; remote: rpc error: code = Internal desc = SSHUploadPack: exit status 128
&gt; remote:
&gt; remote:
&gt; ========================================================================
&gt; remote:

The `remote:` text gives no additional context for the user and adds
clutter.

This commit suppresses the additional message added by Gitlab-Shell on
failure when the error type is `Internal`, returning client output to
the format it was prior to the Gitaly change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Relax key and username matching for sshd</title>
<updated>2021-11-11T00:48:26+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2021-11-10T20:31:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=672013e702cb44c3bc1b46807703295448dc0afc'/>
<id>672013e702cb44c3bc1b46807703295448dc0afc</id>
<content type='text'>
Due to the way sshd works, gitlab-shell could be called with a single
string in the form:

```
/path/to/gitlab-shell -c key-id
```

However, due to the tightening of the regular expressions in fcff692b
this string no longer matches, so logins would fail with:

```
Failed to get username: who='' is invalid
```

This can be reproduced by changing the user's shell to point to
gitlab-shell. For example:

```
usermod git -s /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell
```

While setting gitlab-shell as the user's shell isn't officially
supported, gitlab-shell still should be able to cope with the key being
specified as the last argument. We now split the argument list and use
the last value.

Relates to https://gitlab.com/gitlab-org/gitlab-shell/-/issues/530
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Due to the way sshd works, gitlab-shell could be called with a single
string in the form:

```
/path/to/gitlab-shell -c key-id
```

However, due to the tightening of the regular expressions in fcff692b
this string no longer matches, so logins would fail with:

```
Failed to get username: who='' is invalid
```

This can be reproduced by changing the user's shell to point to
gitlab-shell. For example:

```
usermod git -s /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell
```

While setting gitlab-shell as the user's shell isn't officially
supported, gitlab-shell still should be able to cope with the key being
specified as the last argument. We now split the argument list and use
the last value.

Relates to https://gitlab.com/gitlab-org/gitlab-shell/-/issues/530
</pre>
</div>
</content>
</entry>
<entry>
<title>Log command invocation</title>
<updated>2021-10-07T09:43:27+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2021-10-07T09:43:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=e77f0d0603d622d3a2554e55fe62bc1615fca55b'/>
<id>e77f0d0603d622d3a2554e55fe62bc1615fca55b</id>
<content type='text'>
Use reflection to log the command we are about to execute, both in
gitlab-shell and gitlab-sshd. Include the environment, which has all
the context we need to understand what the command is expected to do.

Changelog: added
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use reflection to log the command we are about to execute, both in
gitlab-shell and gitlab-sshd. Include the environment, which has all
the context we need to understand what the command is expected to do.

Changelog: added
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't swallow an error parsing SSH_ORIGINAL_COMMAND</title>
<updated>2021-09-27T19:25:10+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2021-09-27T18:28:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=5564ea9ca23217687a6e6c091f3b4fc11e375a2f'/>
<id>5564ea9ca23217687a6e6c091f3b4fc11e375a2f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: unify instantiation of command.Shell</title>
<updated>2021-09-20T08:19:41+00:00</updated>
<author>
<name>feistel</name>
<email>6742251-feistel@users.noreply.gitlab.com</email>
</author>
<published>2021-09-20T08:19:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-shell.git/commit/?id=65dadb7e51e206b6411a4518f8a26471d586bc6f'/>
<id>65dadb7e51e206b6411a4518f8a26471d586bc6f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
