►
From YouTube: Adding a UX improvement - Support coding office hours
Description
Adding a UX improvement to the LDAP group sync button https://gitlab.com/gitlab-org/gitlab/-/issues/389647
MR https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112119
See https://docs.google.com/document/d/18_jSEx9Wnzm2H7xd7xuQi3cEsFO7ER6inbNBitEKd-A/edit#bookmark=id.h2af88o1hfon for notes
B
B
Hi
everyone,
my
name,
is
Anton
Smith
I'm,
a
senior
support
engineer
here
at
gitlab
and
today
I'd
like
to
take
you
through
a
small
ux
improvement
with
the
l-dep
group
sync.
So
this
was
actually
brought
to
my
attention
by
Alvin,
where
he
is
creating
an
issue
and
had
a
discussion
with
the
auth
team
on
the
best
way
to
address
this
and
I.
Think
we've
come
up
with
a
very
small
iteration
that
we
can
do
today.
B
So
Alvin,
there's
no
pressure
on
you
mate,
but
did
you
want
to
share
the
issue
briefly?
Go
through
it
and
tell
us
what
the
problem
is
or
would
you
like
me
to
do
that.
A
Okay,
yeah
I
can
I
can
do
that.
So
the
issue
is
that
when
you
configure
group
links
so
I'll
just
share
my
screen
because
it'll
make
things
easier,
make
sure.
A
Yep
yeah,
just
making
sure
I've
not
got
anything,
not
sure
I'm
trying
to
find
that
issue.
C
A
So
what's
happening
here
is
that
when
you
configure
ldap
group
link,
so
in
this
case
I've
configured
all
the
group
Links
at
the
group
level,
when
you
click
the
sync
Now
button,
the
status
of
the
button
changes
to
show
that
it's
syncing
right,
but
there
is
no
logic.
Currently
that
tells
the
customer.
So
there's
no
logic
to
change
that.
Syncing
state
is
back
to
synced
or
whatever.
A
So
in
order
for
the
customer
to
know
that
the
Sync
has
occurred,
they
have
to
go
and
manually
click
the
refresh
button
which
I
just
did
in
the
video,
so
I
just
went
and
clicked
the
refresh
button
in
the
video,
otherwise
it'll
just
stay
there.
Thinking
until
the
you
know,
until
you
close
the
page
and
open
it
or
whatever
the
problem
with
this
is
that
sometimes
the
sink
actually
does
fail.
So
there
is
actually
an
issue
where
the.
A
And
so
the
issue
here
is
more
that
the
customer
would
not
know
without
refreshing
the
page.
The
customer
would
not
know
whether
one
of
the
groups
that
they've
applied
one
of
the
ldap
groups
that
they've
applied
to
this
group
membership
is
actually
broken
or
whether
the
Sync
has
completed.
B
Thanks
Alvin,
so
I'll
just
share
my
screen,
so
yeah
we'll
talk
about
that
issue
that
you've
brought
up
today.
So
thank
you
for
doing
that,
and
yeah
I
just
put
a
notes
where
we've
got
that
documented
about
the
stuck
button
and
the
UI
now
I
forgot
to
pre-face
this
at
the
start
of
the
call.
B
So
you
know
I'm,
definitely
not
an
expert
when
it
comes
to
these
kinds
of
things,
so
I'm
still
learning
rails
myself,
I
do
have
a
background
in
development,
so
I
somewhat
know
how
to
be
dangerous,
but
of
course,
I'll
do
my
best
to
answer
any
questions
along
the
way.
So
if
you
see
something
that
I'm
doing
it
doesn't
quite
make
sense
or
you'd
like
a
bit
of
clarity,
please
feel
free
to
interrupt
me
and
we
can
go
through
that.
B
So,
of
course,
all
with
all
things,
given
the
first
thing
that
needs
to
be
done
is
in
order
to
write
this
new
feature
or
Improvement.
We
need
to
actually
enable
open
ldap
in
your
GDK,
so
I've
already
done
that,
and
if
we
go
back
into
here
sign
out,
there
is.
A
D
B
We
can
take
a
quick
look
at
the
what
I've
done.
Okay,
so
just
just
the
context
that
was
not
planned.
B
Okay,
so
we
can
see
here
that,
because
I've
got
a
loopback
address
for
GDK
test,
I've
set
the
listing
address
there,
I've
enabled
open
ldap,
but
what
we
actually
need
to
look.
B
D
B
Some
reason
I
was
thinking
it
was
under
the
CR
key,
but
it's
not
so.
We
can
see
here
that
we've
got
one
ldap
server
defined
Port
3080,
but
that's
it
so
I'm
a.
A
B
I
believe
we
must
restart.
We
don't
actually
need
to
reconfigure.
B
On
Alvin,
here's
my
where
is
it
my
favorite
plugin.
D
A
B
A
B
What
why
why
do
I
need
to
look
at
logs
when
I
can
just
use
this,
so
it
looks
like
it's
working
now,
so
that
was
the
problem.
So
thank
you
Alvin,
but
let's
just
make
sure
we
can
actually
sign
in
with
an
adobe
user.
Otherwise.
B
Strange
I
I,
don't
know
why
that's
going
all
funky,
all
of
a
sudden,
I
suspect
I'm
going
to
have
troubles
logging
as
a
regular
user.
B
Or
not,
we
might
be
able
to
continue
the
test,
regardless
of
the
the
change
but
yeah
we'll
just
see
how
far
we
get.
So,
what
I'm
going
to
do
so
I'm
not
now
deaf
expert
either,
but
I
am
somewhat
informed
on
what
needs
to
be
done.
So
I
think
we
just
start
off
with
a
group
and
then
we
want
to
add
some.
A
B
Is
this
is
bleeding
edge,
so
15.
E
A
In
previous
versions
you
have
to
like,
you
have
to
start
typing
a
few
characters,
and
then
it
brings
up
the
groups
where
this
one
is
actually
Auto
populated
the
drop
down.
Yeah
yeah,
that's
cool
man.
All
right.
B
B
So
this
is
what
we're
after
Okay,
so
I
guess.
The
next
step
is
when
we
click
on
this.
It's
probably
not
going
to
work
because
something's
broken
with
the
ldap,
but
you
want
to
display
like
a
string
here,
Alvin
that
says
refresh
the
page
to
get
updated
or
you
know
we'll
come
up
with
the
wording
yeah,
so
yeah
we'll
need
to
do
something
there.
So,
okay,
if
we
refresh
that
now,
oh
okay,
so
it
actually
worked,
but
what
we
can
do
is
we
want
to
basically
use
that
as
a
placeholder.
B
So
generally,
the
next
step
is:
we
need
to
figure
out
where
this
button
lives
and
the
code
now
it
can
either
be
in
the
Hamel
templates
or
it
could
be
an
avoo
template
based
on
the
behavior
we're
seeing
here
and
that
we
have
to
manually
refresh
the
pages
most
likely
a
Hamel
template.
B
What
I
like
to
do
is
you
can
use
control
shift
F
to
find
things
in
files
in
vs
code
that
I
just
prefer
rip
grip
so,
as
you
can
see,
I've
just
typed
in
a
I've
copied
and
pasted
the
string
from
that
page
and
I'm
just
trying
to
locate
the
file.
So
you
can
see
that
we've
got
a
hit
on
this
Hammer
file
here.
B
D
A
B
That's
true,
I
guess,
I'm,
just
starting
at
a
higher
level.
A
B
You
can
see
that
this
text
here
matches
the
text
in
this
model
here
and
if
we
keep
going
down,
if
we
read
on,
we
can
see
a
render
sync
button.
So
that's
just
telling
us
that
there's
another
file
that
we
need
to
look
at
and
because
there's
no
folder
path.
It
means
it's
in
the
same
directory.
So
yeah.
Coincidentally,
we
can
see
it's
right
here.
So
here's
where
all
the
magic
happens,
so
the
successfully
synced
button
or
the
successfully
sent
just
now
seems
to
map
to
this
text
here.
B
So
this
is
a
variable,
that's
being
inserted
into
the
string.
So
essentially,
what
we
want
to
do
is
let's
just
I
haven't
tried
this
yet
so
this
is
either
going
to
work
or
not
work,
but
essentially
we
just
want
to
do
this,
so
we
don't
need
all
this
stuff
here,
but
I'm
not
even
sure.
If
we
need
that,
because
we're
not
gonna
have
a
variable
in
here
to
transform.
But
Alvin
did
you
have
any
ideas
on
what
text
you
would
like
in
here.
A
Yeah
refresh
the
page
to
view
status
or
something.
D
D
B
So
I
think
that's
a
good
one,
so
that
should
appear
beside
pending
sink.
A
E
A
A
The
previous
one,
when
we
look
at
if
we
look
at
the
the
pre,
the
preview,
the
first
time
you
click
that
sync
Now
button.
It
said
pending
sync.
D
A
I
can't.
B
B
So
maybe
we're
only
seeing
the
pending
sync,
because
you
know
when
the
page
refreshes
it's
just
waiting
for
it
to
kick
off
and
then
there's
only
one
group
link
with
one
group.
So
it
completes
very
quickly
versus.
A
B
B
B
A
I
think
we
have
to
give
it
a
bit
of
time,
so
maybe
like
give
it
like.
Maybe
there's
like
a
timeout
or
something
so.
B
B
C
E
A
D
B
I
I
I
can't
explain
it
either.
I
clicked
on.
B
D
A
A
D
B
That's
fine:
how
about
how
about
this?
How
about
would
it
make
sense
to
have
this
on
both
the
states
so
both
sinking
and
pending
state.
A
A
B
Yeah,
so
sync
pending
is
probably
waiting
for
the
underlying
sidekick
worker
to
kick
off
the
job,
whereas
sync
started
as
the
jobs
in
progress.
So
I
guess
that's
why
I
was
saying
earlier
that
you
know
we
would
see
this
initially
and
maybe
we
just
lucked
out
that
it
went
straight
to
at
executing.
A
B
Of
course,
I'm
only
making
educated
guess
here,
I've
never
actually
seen
the
behavior
myself
yeah,
but
would
that
would
that
make
sense?
With
your
experience,
Alvin.
A
I,
don't
remember
seeing
the
sync
pending
I've
only
ever
seen
the
sinking
button
but
yeah
it
kind
of
makes
sense.
B
Okay,
we
can
push
on
if
you're.
C
B
Okay,
so
the
bottom
line
is
that
this
is
a
very
small
ux
Improvement
that
will
probably
make
a
good
difference,
so
it's
working,
which
is
great,
but
what
we
need
to
now
consider
is
not.
Everyone
is
an
English.
You
know,
reading
person
so
anytime
that
we
add
strings
to
the
UI.
We
need
to
consider
translations
so.
B
D
A
B
B
The
idea
is
we're
editing,
a
Hamill
file,
so
let's
say
we
want
to
say
hello
world.
We
want
to
write
it
like
this,
so
it's
an
underscore
Open
Bracket,
so
I
believe
we're
already
doing
that
yeah
underscore
Open
brackets.
So
technically
that
should
be
supported,
but
I've
never
done
this
before.
B
If
I
keep
reading,
it'll
probably
tell
us
how
to
generate
it.
I
assume,
there's
probably
some
special.
E
B
It's
part
of
GDK
I'm
trying
to
find
that
as
well,
because
it's
definitely
not
on
that
page,
because
I've
never
seen
that
page
in.
D
My
life,
what.
B
About
this
one
Kenneth,
would
it
be
this
one
that
doesn't
ring
a
bell,
but
it
could
be
I
mean
it
does
say
it
does
exactly
what
it
says,
we'll
give
it
a
whirl
away,
yeah
the
one
the
page
I
always
found
was
in
the
handbook,
not.
B
Oh
yeah,
that's
the
same
command,
oh
sweet
cool!
So
did
you
see
that
on
a
different
page,
just
so
yeah,
it's
in
the
designers
step-by-step
guide
to
code
changes,
okay
and
their
handbook
page.
B
D
B
D
Thank
you,
I've
just
lost
my
post
units.
B
B
B
Stuff
so,
as
I
was
saying
before,
I've
never
done
this
before
so
I
guess
we
just
wait
now,
while
we're
waiting
for
that
to
run.
You
might
be
wondering
if
we
need
to
write
specs
for
this
change
now.
B
I
wasn't
100
sure
myself,
but
what
I
did
was
I
got
in
touch
with
the
auth
team,
just
to
bounce
a
few
ideas
off
them,
and
they
told
me
that
if
I'm
only
just
adding
a
string
to
the
template
that
I
shouldn't
actually
need
a
spec
now
normally
what
you
would
do
in
this
case,
especially
because
we're
adding
text
to
the
screen
and
what
we
want
to
validate
that
it's
actually
being
displayed
when
we
want
it
to
be
displayed,
we
would
write
a
feature
spec,
but
interestingly,
there's
no
feature
spec
that
exists
for
the
sync
button,
or
even
the
not
specifically
this
button
here
or
this
page.
B
So
for
now,
I
don't
have
to
write
a
spec
but
we'll
see
how
it
goes
in
the
review
process
of
the
reviewer
wants
me
to
write
one
or
not
so
yeah
any
questions
so
far.
B
Kenneth,
do
you
have
any
idea
how
long
this
takes
to
run?
Oh
there,
the
the
trigger,
was
you
asking
me?
Oh
okay,
clearly
you're
magical!
Thank
you!
Kid
yeah
I,
just
wanted
to
share
I
did
find
Alvin's
Mr.
That
I
did
with
him
in
which
he
did
up
the
gitlab.plot
file
all
right,
so
he
must.
He
needed
to
have
run
this
command.
B
D
B
All
right
now
the
whole
world
can
see
cool
okay.
So
that's
pretty
much
all
the
changes
we
need
to
do
so
Alvin.
Are
you
100
happy
with
the
strength
that
we're
going
to
apply
here.
B
I'll,
take
your
silence
as
a
yes,
so
yeah
I
guess
we
can
just
come
at
it
up,
push
it
up
and
create
Emma.
How.
A
A
D
B
Get
it
together,
get
it
together.
All
right,
yeah
I
just
wanted
to
show
the
text
album,
but
carry
on.
Oh
there
we
go,
but
now
I'm
saying
now.
A
C
Hunting
sinking
like
wait
for
wait
for
sin.
A
C
A
You
look
at
that
whole
thing
like
if
you
look
at
this
whole
thing
here,
what
would
you
do.
C
B
B
B
Is
just
a
little
text?
Is
it
just
my
screen,
but
that
looks
like
a
hyperlink
like
the
color
of
it.
It
is
kind
of
like
a
Bluey
color.
So
let's
color
the
colorsology,
this
color
here
RGB.
B
B
D
B
B
So,
let's
try
it
one
more
time:
yeah,
just
an
opening
sync,
but
that's
okay!
So
Alvin
did
you
have
any
other
thoughts.
A
I
think
it
looks
good
refresh
the
page
to
view
this
thing
status.
Okay,.
B
A
Now
that
you've
saved
that
other
change,
do
you
need
to
do
that
touch?
Do
you
need
to
do
that
regenerate
closing
again
because
you've
added
another
text
line
of
text?
That's.
B
A
good
question:
the
thing
is,
this
string
is
technically
the
same
as
this
string,
so
I
would
imagine
a
translation
for
that
would
apply
to
both
but
I'm
not
to
to
be
honest,
I'm,
not
100,
sure
I
mean
it
wouldn't
hurt
to
run
it
again.
To
be
honest
with
you,
the
other
thing
I'm
not
sure
about
is
if
we
need
that
HTML
safe
function
because
we're
not
transforming
or
you
know,
concetting
any
strings
in
there.
D
B
Yeah,
because
it's
not
a
variable
or
anything,
it's
always
going
to
be
that
static
test.
So
too
I
I
feel
like
we
shouldn't
need
it,
but
in
the
worst
case
the
reviewers
would
all
would
should
note
to.
D
B
B
B
B
B
So
I'm
just
going
to
use
you
know
this
is
probably
Blasphemous
but
I'll
use
the
GitHub
client
for
a
gitlab
very
cheap,
but
you
can
see
that
all
the
changes
are
being
made.
This
is
what
we've
added
I'm,
not
sure.
If
we
need
to
include
all
these
Locale
files,
I
thought
we
only
needed
to
include
the
pot
file.
B
B
D
B
A
B
B
D
B
Ones
we
don't
actually
need
because
they're
not
actually
part
of
the
Mr,
but
we
do
need
these
two,
so
I
do
need
to
create
another
Branch.
First
though,
so
what
should
we
call?
This?
We'll
just
call
words.
Sync.
B
Yeah
I
need
to
get
with
the
lingo
I
think
so
git
switch
does
both
at
the
same
time
creates
the
branch
and
switches
oh
switch.
Dash
C
does
okay.
D
D
B
D
B
Now
we
don't
actually
need
to
go
into
too
much
detail
to
come
out.
I'll
just
call
it
this
for
now
now
there
are
a
few
other
things
we
need
to
do
before.
We
push
it
up
that
I'm
just
remembering.
B
So
there
is
the
trailer,
so
it's
a
changelog
entry.
So
basically,
this
is
what
I
forgot
to
add.
When
you
create
any
kind
of
new
change
and
gitlab,
we
need
to
add
a
trailer,
so
we
need
to
add
change,
lock
changed
or
whatever
it's
called.
In
our
case,
we
probably
just
need
to
add
I
would
say
it's
not
a
it's
not
technically
a
feature.
D
B
Episode,
it
is
but
group
links
in
particular
is
then
is
that
an
ee
feature?
Yes,
okay,
so
we
need
to
add
this
ee
equals
true
on
the
end
as
well.
B
D
A
A
B
This
applies
to
everything,
okay
cool,
so
all
we
need
to
do
is
we
just
need
to
add
this
in
this,
but
change
that
to
other
easy
so
because
I've
already
created
the
commit
I
have
to
edit
the
command.
D
B
What
was
your
suggestion
going
to
be
Kim
git
commit
dash,
dash,
amend
that
just
amends
the
previous,
your
previous
commit
I've
been
doing
it
the
wrong
way.
No.
D
B
B
Okay,
thank
you.
Yeah
I've,
just
as
a
Dev
I've
always
used
the
rebase
command
for
amending,
commits
and
yeah.
D
B
Just
never
occurred
to
me
to
use
that
command,
but
yeah.
Thank
you.
I
think
it's
really
cool
how
there
are
different
ways
to
achieve
a
task.
D
A
Oh
Anton,
because
this
is
vim
right,
if
you
do
that
immense
thing,
I
think
it
loads
Vim.
This
is
not
nano
anymore.
E
C
C
B
Got
yeah
I've
got
a
custom
keyboard
layout,
so
it's
probably
there
I'm
not
cleanly
setting
the
correct
key
combination.
So
what
I'm
going
to
do
is
I'm
just
going
to
close
that
go
new
terminal,
I'm
going
to
probably
open
up
item.
B
Maybe
I
should
change
this
to
a
more
descriptive
message.
Would
anyone
have
any
thoughts
on
what
I
could
write
there.
B
B
All
depth
group
sync
page.
B
That
might
be
fun,
so
we
can
leave
it
at
that
now
before
we
actually
push
it
up,
we
should
run
lift
hook
on
it
to
just
make
sure
that
anything
I've
done
is
not
going
to
break
any
of
the
linters
or
RoboCop.
B
This
also
saves
a
lot
of
time
when
you
commit
and
push
something
and
you're
waiting
like
hours
or
not
hours
but
eight
hour
for
all
the
tests
to
run,
and
then
it
fails
and
then
gonna
make
a
change
and
do
it
again.
So
there
is
a
lot
of
value
at
running
the
lift
hook
test
locally.
So
this
is
actually
just
the
Alias
I.
Think
I
might
have
mentioned
that
in
previous
calls,
before
all
right.
B
Yeah
run
it
manually,
so
you
would
run
that
so
my
my
Alias
is
just
basically
doing
that.
Okay,
any
questions
before
we
move
on.
B
D
B
Commit
in
the
repo
right,
yeah
yeah,
yes,
yes,
I-
think
I've
run
into
that
before.
Actually
yep
I
know
exactly
what
you
mean
so
yeah.
It's
actually
helpful
to
know
both
situations
as
a
result,
yeah,
because
with
the
rebase
command
for
those
that
aren't
aware,
it's
it's
definitely
a
lot
more
powerful.
B
So
if
you
wanted
to
squash,
commits
interactively
or
reword
multiple
commits
at
a
time,
I
mean
you
can
definitely
do
it
with
that
command,
but
you'll
get
you're
referring
to
interactive
rebasing,
which
is
like
rewriting
history,
yeah,
there's
also
another
form
of
rebasing,
but
you
don't
have
to.
B
No,
no
definitely
I
mean
we
could
talk
hours,
I
I
think
we
can
talk
a
long
time
on
different
ways
of
doing
things,
but
no
thank
you,
Kenneth
for
sharing
that
I
learned
something
new
today,
all
right,
I'm,
just
wary
of
time,
because
I've
got
another
call
after
this,
so
I'll
just
create
this
really
quick
just
so
everyone
has
an
idea
of
what
we
need
to
fill
out
here
so
now.
D
Be
a
just
trying
to
think
what
would
it
be
feature.
B
The
default
just
pick
default,
no
I
assume
it's
just
using
the
default
already,
but
yeah,
okay,
so
basically
I
just
need
to
fill
in
all
this
stuff
here.
So
screenshots
are
easy.
We
just
take
pictures
of
what
we
did
there,
but
what
we
probably
want
to
do
is
I'll
just
write
some
stuff
in
here.
Real
quick
closes.
B
No
no
yeah
you're
right
the
word
closes,
doesn't
actually
generate
an
action
to
close
the
issue
once
the
Mr
is
merged.
It's
just
I'm
just
saying
that
this
Mr
will
close
this
once
it's
like
it's,
it's
not
actually
doing
anything,
it's
just
the
way
I'm
wearing
it.
A
B
B
So
screenshots
I
probably
should
have
taken
a
screenshot
while
I
was
doing
it
so.
B
Okay,
how
does
okay,
so
what
are
the
steps?
The
holiday
look
like
one
set
up
ldap
with
group
links
to
and
then
basically
we
want
to
start
a
manual
sync
right.
So.
A
Yeah
so
go
to
go
to
group
members.
The
group
members
page
here
go
to
the
group
members
page.
A
No,
no,
not
not
a
group
members
Pages.
The
group
members
so
group
members
not
possessive
right,
no
apostrophe,
members,
page
and
click
on
sync
sync:
Now
button
click
on
the
sync
Now
button.
B
A
A
B
No
you're
right,
it
doesn't
so
before
we
submit
it.
I
typically
will
add
the
milestone,
I'm,
not
sure
if
it's
going
to
get
merged
by
the
cuttle
plate.
So
the
cutoff
dates
like
the
the
19th
or
the
20th.
So
maybe
I'll
just
leave
the
Milestone
alone
for
now
and
let
the
reviewer
do
it,
but
what
we
do
need
to
add
is
labels,
so
in
your
case
I'm
just
going
to
pretty
much
rip
what's
here.
D
B
I
think
you're
right
it
does
do
that.
I
I
mean,
let's,
let's
add
it.
D
B
I
won't
hit
the
self-manage
I've
all
had
this
one
support
team
contributions,
because
we.
D
B
No
you're
too
kind
of,
but
we
got
there
so
this
obviously
there
needs
to
be
a
lot
of
pipeline,
a
lot
of
jobs
to
run
to
vet
that
everything's
okay.
Now
at
that
point,
there
will
be
bot
message
that
says:
hey
look
at
the
reviewer
roulette
dashboard
or
whatever
it's
called
so
you
can
assign
someone
to
review
it.
B
So
I'll
do
that
once
all
the
pipeline
once
the
pipeline
passes,
hopefully
everything's,
okay,
but
then
yeah
from
that
point
on
it's
pretty
straightforward
now,
in
terms
of
who
would
review
this
change,
you
know,
you've
got
multiple
teams,
you've
got
ux,
you've
got
front
end
back-end
appsec,
in
this
case,
this
particular
change
would
probably
I
would
probably
pass
this
on
to
someone
from
the
ux
team.
First
to
confirm
that
they're
happy
with
the
message
and
then
it
would
probably
go
to
the
front
end
team.
Then
it
will
go
to
a
maintainer.
B
Yeah
all
right
do
you
need
to
hop
off,
but
does
anyone
have
any
quick
questions
before
we
leave?
B
Yes,
why
are
you
so
awesome,
Anton
I,
don't
know
I
I
think
it's.
You
know
I'm
only
as
awesome
as
the
people
that
I'm
more
around.
So
you
know
I
hang
around
with
a
lot
of
awesome
people,
especially.