GitLab: You're Kidding Me, Right?

ferricoxide profile image Thomas H Jones II Originally published at thjones2.blogspot.com on ・2 min read

Some of the organizations I do work for run their own, internal/private git servers (mostly GitLab CE or EE but the occasional GitHub EE). However, the way we try to structure our contracts, we maintain overall ownership of code we produce. As part of this, we do all of our development in our corporate GitHub.Com account. When customers want the content in their git servers, we set up a replication-job to take care of the requisite heavy-lifting.

One of the side-effects of developing externally, this way, is that the internal/private git service won't really know about the email addresses associated with the externally-sourced commits. While you can add all of your external email addresses to your account within the internal/private git service, some of those external email addresses may not be verifiable (e.g., if you use GitHub's "noreply" address-hiding option).

GitLab makes having these non-verifiable addresses in your commit-history not particularly fun/easy to resolve. To "fix" the problem, you need to go into the GitLab server's administration CLI and fix things. So, to add my GitHub "noreply" email, I needed to do:

  1. SSH to the GitLab server
  2. Change privileges (sudo) to an account that has the ability to invoke the administration CLI
  3. Start the GitLab administration CLI
  4. Use a query to set a modification-handle for the target account (my contributor account)
  5. Add a new email address (the GitHub "noreply" address)
  6. Tell GitLab "you don't need to verify this" (mandatory: this must be said in a Obi-Wan Kenobi voice)
  7. Hit save and exit the administration CLI

For me, this basically looked like:

gitlab-rails console production
 GitLab:       11.6.5 (237bddc)
 GitLab Shell: 8.4.3
 postgresql:   9.6.10
Loading production environment (Rails 5.0.7)
irb(main):002:0> user = User.find\_by(email: 'my@ldap.email.address')
=> #<user id:532="" thjones2=""><br>irb(main):003:0&gt; user.email = 'ferricoxide@users.noreply.github.com'<br>=&gt; "ferricoxide@users.noreply.github.com"<br>irb(main):004:0&gt; user.skip_reconfirmation!<br>=&gt; true<br>irb(main):005:0&gt; user.save!<br>=&gt; true<br>irb(main):006:0&gt;<br></user>

Once this is done, when I look at my profile page, my GitHub "noreply" address appears as verified (and all commits associated with that address show up with my Avatar)

Posted on by:

ferricoxide profile

Thomas H Jones II


Been using UNIX since the late 80s; Linux since the mid-90s; virtualization since the early 2000s and spent the past few years working in the cloud space.


Editor guide