A lot of tools we use are described in the rest of the handbook (GitLab, Google Docs, Google Hangouts, 1Password, etc.). This section is for tools that don't fit anywhere else.
Use these GitLab branded slide templates when creating slide decks for internal or external use.
Calendly connects to your Google calendar so people can book a time with you without having a Google Account.
Set up the 45 minute time slot with the following event description text (replacing XXXXX with your @gitlab.com handle):
This will be a Google Hangout at https://plus.google.com/hangouts/_/gitlab.com/XXXXX
Question? Please email me. GitLab Primer: https://about.gitlab.com/primer/
Display Text, use this line:
Schedule a meeting with me!so GitLabbers can schedule a 1:1 call with you in GitLab, by simply clicking your Calendly link in your Slack profile.
Keep in mind that unlike normal Google Calendar events, Calendly events are not automatically synchronized between both parties when changes are made. If an event needs to be cancelled or modified, make sure to use Calendly to do so.
$4.99 tool for OSX that allows you to use you fn key as a push to talk or push to mute. Never again will you have switch window focus to Google Hangout or Zoom to speak or mute. The icon will show the current state of your mic input (x means muted). With a right click you can switch from push to talk to push to mute. Don't forget to unblock your mic in Zoom/Google Hangouts immediately after joining. Be warned that page up with fn+down arrow will activate it. Use space for page down instead of fn+up arrow.
If you use Linux (eg; Arch, Ubuntu or Fedora) then you can create system-wide keyboard shortcut to mute/unmute your mic. Please note that it only works for Linux distributions which use ALSA system for sounds (most popular Linux distributions use ALSA). All you need to do is go to your desktop environment's Keyboard Settings and create a custom shortcut with command
amixer set Capture toggle and assign a key combination of your choice (eg;
Pause Break key). Once this is done, you can mute/unmute your mic using the assigned keyboard shortcut while you're in any application. Refer to this original answer on Askubuntu to learn more.
During a presentation or screen share, you might want to disable your notifications on OS X to prevent distractions or possible embarrassment.
The Notification Center can be quickly disabled by Option-Clicking the menu bar icon in the top right of your screen. This disables notifications until the next day. Option-Click again to re-enable immediately. Alternatively, click on the Notification Center icon, then scroll up to reveal the "Do Not Disturb" toggle.
Slack now supports "Do Not Disturb Hours" so you won't be pinged in the middle of the night or while you are dealing with family matters. You can set your Do Not Disturb Hours by clicking on the bell at the top of the left pane in the Slack app. You also have the option of snoozing for 20 minutes or up to 24 hours. Note: Do Not Disturb can be overridden in the event of an emergency. See Slack documentation for more information.
You can browse all available GitLab channels by clicking on "Channels" on the left pane in the Slack app. From there, you can see every channel, who created it, and how many members there are.
This Chrome extension will allow guests to modify calendar appointments by default.
Add a filter to remove invites responses from your inbox with the following query:
*.ics subject:("invitation" OR "accepted" OR "rejected" OR "updated" OR "canceled event" OR "declined") when where calendar who organizer
To set up a Zoom meeting, sign up for a free basic account, and share the link for your "personal meeting room" with your participants. Note that on the Basic license, meetings are capped at 50 people, and meeting durations are capped at 40 minutes. If you need to be able to organize calls longer than 40 minutes using Zoom, contact People Ops to be granted a Pro account. By default, only Support Engineers and members of the Sales team are given Pro accounts during onboarding since their job routinely involves making video calls with (potential) customers.
To record the meeting set up cloud recording. You can also configure Zoom to save to the cloud automatically. Go to "My Meeting Settings" and find the "Recording" section, then click on "Cloud Recording". Setting the topic of the meeting is important, otherwise all meetings will be recorded with a generic name; a folder will be created with the name of the recording on Google Drive.
Our Zoom account has End-to-End Encryption enabled. This may impact performance, so if you run into any issues, let People Ops know.
If there is a meeting active, a new meeting cannot start until the host ends the meeting or all participants leave. People Ops can force end a meeting by logging into Zoom with the credentials in 1Password, going to My Meetings, finding the meeting they would like to end, then selecting "End." This will allow the next meeting to begin.
While Zoom works on Linux, the application is not free software. As a result, some might be wary of running this directly on their computer. One way of running Zoom without worrying about what it does is to use firejail.
To use Zoom with Firejail, first install Zoom or download the archive. Zoom offers standalone binaries that you can download should your distribution not have a package for Zoom. Once installed, install firejail.
Once both firejail and Zoom are installed we need two things:
You can use the following firejail profile and store it in
noblacklist ~/.config/zoomus.conf include /etc/firejail/zoom.local include /etc/firejail/disable-common.inc include /etc/firejail/disable-programs.inc include /etc/firejail/disable-devel.inc whitelist ~/.zoom caps.drop all netfilter nonewprivs noroot protocol unix,inet,inet6,netlink seccomp private-tmp
Next we need a home directory for Zoom. For this example we'll use
sudo mkdir -p /opt/zoom/home sudo chown -R $USER /opt/zoom
With this in place we can start Zoom using firejail as follows:
firejail --quiet --profile=~/.config/firejail/zoom.profile --private=/opt/zoom/home /path/to/zoom/ZoomLauncher
Note that you must start the
ZoomLauncher binary and not the shell script wrapper called
Please see the secure note with the name 'Google Cloud Platform' in the shared vault in 1password for the credentials.
Once in the console, you can spin up VM instances, Kubernetes clusters, etc. Please remove any resources that you are not using, since the company is billed monthly. If you are unable to create a resource due to quota limits, file an issue on the Infrastructure Tracker.
It might be useful to add a Gmail filter that adds a label to any GitLab notification email in which you are specifically mentioned, as opposed to a notification that you received simply because you were subscribed to the issue or merge request.
If you use the archive function you normally return to your overview. With auto-advance you can return to the next message. Enable 'Auto-advance' in the labs section under settings. The default setting of showing the next older message is OK.
Set up an email signature which includes your full name and job title so people can quickly know what you do.
Computers with older CPUs (pre-2016/Skylake) may be missing hardware acceleration for VP9. In Chrome, this can cause excessive CPU due to use of the codec. On MacOS switching to Safari or using h264ify solves this since it will use h264 that is hardware accelerated. Chrome Web Store.
To check the status of acceleration on Chrome, see the "Video Encode" option in about://gpu.
Hangouts on Air probably only works with a maximum of 15 people for scheduled calls (same limit as normal Google Hangouts).
Potential problem: even when I logged in as GitLab and got the bar below the call, I could not switch it too on-air! I did notice that the time was not properly set (anymore?). I did a test event before and that seemed to work OK. I'll try one more time to see if it works.
Potential problem 2: the video showed up as listed by default
Go to My live events on YouTube and switch to the GitLab account on the top right (you need to be a manager of our YouTube channel).
Go to => life streaming => events and create a new one with the attributes:
The view on watch page URL only allows for people to watch it. Window that pops up when you press the start hangout on air button has the proper URL that you can send to other people and/or add it to the calendar invite, it is structured like: https://plus.google.com/hangouts/_/ytl/LONGHASH. When people join the event they have to accept a warning.
Completed live events will show the video and you can click the image to view it. You can use actions to make it public here
BTW Trying to set this up via Google+ via Hangouts on Air instead of via YouTube doesn't seem to connect to the right YouTube channel, even if you selected the right account on the top right.
Appear.in allows you to instantly create a free video chat room for up to 8 participants with no login and no installation. It also offers a free reliable mobile video conference app.
One Tab (Free) tames tabs into a list which can be sorted and exported.
Quitter (Free) will switch off apps for you after some period of inactivity. Consider using this to hide Slack after a while to reduce your urge to check new messages all the time.
TripMode ($7.99) lets you control which apps can use the internet. Especially useful when you're working on a cellular/metered connection.
LICEcap (GPL Free Software for Mac + Windows) lets you capture areas of your screen as an animated GIF. Using LICEcap is a great way to show interactive functionality and report issues.
ShareX (Free / Windows Only) is the ultimate screen capture toolbox for Windows, which includes many different options to record your screen and automate your workflow with automatic uploading, resizing and much more.
When the GitLab Development Kit cannot start using the
./run command and Unicorn terminates because port 3000 is already in use, you will have to check what process is using it. Running
sudo lsof -i -n -P | grep TCP | grep 3000 will yield the offender so this process can be killed. It might be wise to alias this command in your
.bash_profile or equivalent for your shell.
Use command aliases in your shell to speed up your workflow. Take a look at these aliases and others in Sid's dotfiles project. For example, by adding the following to your
.bash_profile or equivalent for your shell, you can just type s to checkout the
master branch of this website, pull the latest changes, and open the repository in Sublime Text:
alias gco='git checkout' alias gl='git pull --prune' alias gca='git commit -a' alias gp='git push origin HEAD' alias www='cd ~/Dropbox/Repos/www-gitlab-com/source' alias s='www;subl .;gco master;gl'
After editing, you can just type gca to commit all of your changes, followed by gp to push them to the remote branch.
If you install MobileDay (Free) on your phone and give it access to your Google Calendar it can dial into conference calls for you. It is very good at detecting the number and password from the calendar invite.
Keeping You Awake (Free & Open Source) is a macOS utility application that can prevent your Mac from entering sleep mode for a predefined duration or as long as it is activated.
Show keychain status in menu bar
You can lock your screen by clicking the lock icon on the menu bar and clicking
If you are working on multiple GitLab instances and want to have a visual differentiation, you can change the default Application theme to a different color.
old-maryand you want it to be just
STEP 1: Request your new username
email@example.com, explaining the reasons why you need that username.
STEP 2: Create a new account with your new username
firstname.lastname@example.org, add the new email as
email@example.com: this is a Gmail trick! All your emails sent to this alias will end up in your GitLab email account. 😃
STEP 3: Let's have some fun (kidding, this is critical!)
maryto something like
mary-1and DO NOT click update username yet. Rename your old username
old-maryto your new username
maryand don't update that either. Just leave them typed into the boxes.
mary-1). Immediately, click update on the other one (
mary-1to your old one
old-maryand click update username again.
STEP 4: Move your projects (or not)
https://url of your project there. To make things easier, make sure all the projects you want to import are set to
publicview. You can make them private afterwards.
Arecord. Your groups won't be affected either, as they operate under their own namespace. Add both users as members of your groups and nothing changes.
Flash: Due to security flaws, we strongly recommend not using Adobe Flash. Certainly do not install it on your local machine. But even the Google Chrome plugin that let's you see embedded Flash content in websites can pose a security hazard. If you have not already, go to your Chrome plugins and disable Flash. For further context, note that Google Chrome is removing Flash support soon, and while the plugin is better than a local install of Flash, it still leaves vulnerabilities for zero-day attacks.