►
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
B
Okay,
so
it
already
Live
on
YouTube
also
so
this
session.
The
plan
is
to
do
some
live
coding,
as
if
it's
the
work
that
I'm
echoing
sorry
so
we're
going
to
live
code
as
if
it's
the
normal
work
that
Tristan
and
I
do
so
I'll
introduce
ourselves
so
I'm,
James
I'm,
pretty
new
to
gitlab
I'm
in
the
monitor
respond
team,
as
is
Tristan
for
both
front-end
engineers
and
we're
going
to
be
working
on
a
specific
issue.
B
C
Thanks
yeah
yeah
I'm
Tristan
Frontier
engineer
on
the
monitor
team
of
being
with
the
company
for
coming
up
four
years
and
I'm
based
in
New
Zealand.
B
Great
thanks,
yeah
trust,
sound
Basin
Berlin
from
from
Australia
and
Tristan,
taught
me
how
to
code.
So
that's
pretty
cool
yeah
all
right
so
so
the
idea
today
is
the
issue.
We're
doing
is
is
not
super
straightforward,
like
we
had
to
make
some
decisions
on
why
we
would
use
the
a
particular
solution
that
we
are
going
to
implement.
B
So
we
had
some
conversation
you
can
see
on
the
issue
itself
on
you
know,
should
we
use
tabs
or
should
we
use
the
router
in
a
different
way?
Sort
of
we've
had
this
conversation
mostly
asynchronously,
some
meeting
where
we've
talked
about
it
and
so
yeah
we're
gonna
Implement
that
now
so
today's
session
Tristan
will
drive
and
I
will
navigate
so
yeah.
C
B
Will
share
a
screen
and
feel
free
to
jump
in
with
any
questions
yeah
whenever
you
want.
C
C
Yeah,
so
here's
the
issue
that
we're
talking
about
today
there's
a
little
bit
of
background,
so
I'll
touch
on
like
a
few
different
things
before
we
get
get
into
the
coding
So
within
gitlab.
You've
got
this
concept
of
incidents,
it's
kind
of
like
an
issue
if
you've
used
good
light
issues
with
with
some
extra
features
and
yeah
for
a
slightly
different
use
case.
So,
like
one
feature
that
we
added
recently
is
the
timeline
and
there's
like
a
really
quick
demo
over
here.
C
Actually,
where
you
can
see
this
is
an
incident,
it
has
some
tabs.
The
one
of
the
Taps
is
the
timeline.
C
You
can
add
entries
the
main
yeah
and
then
this
is
showing
a
bug
there
that
we
will
hopefully
fix
by
the
end
of
today
yeah
and
this
timeline
will
be
used
in
the
case
of
like
if,
if
an
incident
happens
to
your
website
or
like
web
application,
that
you're
running
or
some
kind
of
like
online
service,
that
causes
you
to
have
like
an
outage
or
some
other
kind
of
interruption
in
perhaps
you'll
have
some
have
a
workflow
where,
in
that
scenario
and
incident
gets
created,
your
give
Ops
Engineers
might
add
stuff
to
the
timeline
to
say
yeah.
C
The
incident
was
first
noticed.
You
know
at
8pm,
but
actually
at
6
PM.
This,
like
disk
space
alarms
that
are
going
off
so
yeah,
add
that
to
the
timeline
and
through
that
you
can
get
a
picture
of
maybe
what
the
cause
was,
what
actions
people
are
taking.
So
you
don't
step
on
each
other's
toes
and
like
yeah,
basically
help
you
resolve
the
incident
as
quickly
as
possible,
yeah
and
what
what
was
just
shown
was
the
on,
like
the
main,
like
activity
on
an
issue
or
an
incident.
C
It
might
include
a
link
to
their
timeline
event,
but
as
of
right
now,
if
you
click
that
it
doesn't
go
anywhere
and
that's
an
issue
yeah,
so
it
seems
like
kind
of
like
it
should
be
an
easy
fix
where
we
just
have
to
add
like
a
I'm,
not
sure
if
you
can
see
in
the
URL
at
the
top
there,
but
it's
yeah.
It's
got
the
incident
and
then
like
a
hash
and
then
a
timeline
item.
C
So
you
think
it
might
be
as
simple
as
just
adding
that
ID
to
an
element
and
then
the
browsers
like
a
normal
hash
navigation
would
take
over.
But
unfortunately
it's
not
that
simple
and
I'll
just
quickly
show
in
my
live
environment.
C
I
have
an
incident
here
yeah
and
one
of
the
reasons.
It's
not.
That
simple
is
you.
Might
click
that
link
from
this
page
where
the
timeline
tab
isn't
open,
so
the
the
browser
doesn't
know
to
open
the
timeline
tab
automatically
we'll
have
to
like
handle
that
somehow,
and
you
also
want
to
be
able
to
like
load
a
load
event
directly
in
the
URL
and
have
it
automatically
goes
to
the
right
tab
when
you
load
this
page
because
by
default
it
goes
to
the
summary
tab
yeah.
C
So
those
are
like
some
challenges,
yeah
and
then,
as
a
result
of
that,
we
had
like
a
brief
sort
of
discussion
and
investigation
into
the
issue,
and
one
idea
that
was
put
forward
was
using
view
router
to
solve
this
problem.
C
Computer
router
would
provide
some
like
additional
functionality
around
manipulating
URL
and
like
reading
from
the
URL
that
affect
that
you
want
to
navigate
to
a
specific
tab
on
the
page
yeah.
So
that's
that's
kind
of
where
we
landed.
Does
this?
Is
this
all
making
sense
so
far,
Jake
background.
C
Yeah,
so
we
had
this,
we
had
this
sort
of
discussion
and
we
thought
why
not
try
out
gear
router
and
see
how
far
we
get
and
I
had
had
like
a
little
investigation
on
like
a
branch,
and
it
does
seem
like
it
would
solve
the
problem
for
us
yeah.
So
today,
I
might
show
a
little
bit
up
there
like
starting
a
new
Branch,
adding
G
router
to
the
page
and
yeah
and
sort
of
show
like
my
workflow,
and
show
how
yeah
run
tests
locally
and
things
like
that.
B
D
Thanks
for
the
invite
and
I
just
wanted
to
ask
a
quick
question:
would
your
approach
normally
be
to
read
the
documentation
and
and
kind
of
figure
it
out
as
you
go,
or
would
you
find
somewhere
in
the
code
base
where
you're
maybe
already
doing
what
you're
trying
to
achieve
and
borrow
certain
there
already
solved
solution
so
to
speak.
C
C
C
Yeah,
so
I
could
show
some
of
that,
like
how
I
even
went
about
looking
in
the
code
base
and
stuff.
If
that's
useful,
yeah
I.
D
Think
that
thought
process
is
is
really
interesting.
I've
shared
a
link
to
a
component
that
I've
worked
on.
That
does
something
really
really
similar,
oh
yeah,
so
you
know,
but
but
I
think
a
huge
part
of
this
session
is
is
for
you
to
kind
of
you
share
what's
in
your
head
and
help
people
to
understand
how
they,
so
it's
probably
important.
We
don't
skip
too
many
steps,
but
this.
D
Has
has
a
few
routes
set
up?
It's
got
root
of
you
at
the
bottom
and
there's
a
few
root
links
in
there
that
take
you
sort
of
back.
D
It's
a
little
bit
different,
because
this
opens
in
a
draw
at
the
side
of
the
screen
and
there's
kind
of
a
main
content.
View,
and
then
the
draw
is
the
bit
that
varies
depending
on
the
URL
and
the
link
that
you
click
but
I
think.
The
the
way
this
is
implemented
would
would
be
pretty
much
the
same
as
as
what
you'll
be
looking
for.
A
B
B
We
did
look
at
the
merge
request
page
because
it's
the
most
obviously
similar
and
should
be
like
you
know
like
on
the
merge
requests.
The
behavior
should
be
the
same
as
what
you'd
expect
on
an
issue
or
an
incident
in
the
state
in
this.
So
the
merge
requests
the
router
there
was
really
quite
complex
and
not
really
something
we
could
easily
move
over
to
to
our
to
the
issue
or
incident
section.
Yeah.
B
Like
this
is
the
behavior
that
we
want,
you
can
see
like
it's
using
the
router,
it's
not
using
tabs,
and
this
is
one
of
the
reasons
why
we
said
I'll
go.
We
need
to
use
the
router,
not
tabs
and
the
difference
in
like
they
use
it
for
the
user.
Experience
is
like.
So
if
you
go
to
commits
Tristan,
then
you
have
like
the
issue
ID
in
the
URL
and
then
slash
commits,
whereas
if
it
was
tabs,
it
would
be
issue
ID,
tabs
question
mark
commits
yeah.
Oh
sorry,
question
mark
tabs
equals
commits.
C
C
Oh
whoops,
sorry!
Here
we
go
where
I
don't
know.
If
it's
even
is
it
documented
by
us
or
just
by
bootstrap.
C
It's
a
prop
that
you
can
provide
that
allows
you
to
do
navigation,
yeah,.
A
C
Yeah,
so
this
this
approach
wasn't
ideal
just
just
because
of
that,
the
ux
of
the
like
the
user
experience
of
the
URL
is
kind
of
different
to
what
we
want
and
then
say,
measure
quests.
This
does
have
the
behavior
that
we
want,
but
the
implementation
of
this
is
yeah,
as
James
said
more
complex
than
we
are
hoping
for.
I
think
this
is
the
way
this
is
done
is
already
being
flagged
as
something
that
would
be
nice
to
refactor,
but
essentially
I
well,
I
believe
each
each.
C
So
it's
not
done
in
VJs,
which
means
there's
a
lot
of
like
additional
JavaScript,
that's
doing
manual,
Dom
manipulation
and
stuff
and
yeah
it
would.
It
would
be
nicer
to
do
it
and
appear
as
possible
because
in
our
case
we're
dealing
with
with
dealing
with
things
that
are
all
view.
Components
like
the
summary
is
a
few
component
timelines
of
your
components
so
yeah.
C
C
Yeah
and
and
I
did
find
a
similar
use
case,
which
is
alerts,
there's
just
a
slight
difference,
that's
loading
and
that
it
uses
hash
navigation.
So
it
has
this
this
hash
in
the
URL.
C
So
if
I
switch
to
another
tab,
it
still
has
a
hash
before
their
last
slash.
So
part
of
part
of
my
like
one
of
my
goals,
I
guess
with
implementing
that
is
figure
out.
If
we
can
do
away
with
the
Hesh,
particularly
because
our
use
case
is
this
adding
an
anchor,
but
you
link
to
an
anchor
with
a
hash,
so
I
don't
think
it
would
work.
I
haven't
tried
this
actually,
but
I,
don't
think
it.
The
browser
would
like
it.
D
A
D
C
D
C
Yeah,
sorry,
you
were
going
to
say
something:
okay,.
B
Yeah,
so
we
did
find
a
similar
issue.
We
talked
about
a
similar
issue
that
people
could
if
they
wanted
to
try
their
own
solution.
They
could
do
that,
and
that
was
with
the
alerts,
but
is
it?
Do
you
mean
the
issue
that
we
link
to?
Is
it
you
can
find
on
the
agenda
or
on
YouTube,
but
yeah?
Is
it
to
remove
that
hash?
Is
that
what
the
issue
is.
C
Yeah
that
that's
that's
exactly
right.
It's
to
remove
the
hash
into
allow
back
navigation.
A
C
C
C
Apart
from
the
lack
of
like
a
refresh
but
yeah
I,
think
you
want
to
be
able
to
have
metrics,
add
to
the
history
and
then
be
able
to
go
back
to
the
alert
details
or
to
even
just
to
reload
the
page
when
you're
on
metrics
and
have
it
have
it
remembered
that
without
needing
the
hash
yeah,
so
that
that's
just
like
a
small
sort
of
usability
improvement
just
to
make
the
URL
a
little
bit
nicer.
Yep.
C
B
C
This
is
it
here,
I
made
it
just
today,
as
I
was
looking
at
the
alerts,
page
yeah,
so
maybe
we'll
dive
into
some
code.
For
this.
C
So,
oh
among,
like
I'm,
a
master
at
the
moment
from
just
earlier
today,
it's
a
little
bit
behind,
but
it's
close
enough
wait.
I'll
make
a
new
branch.
C
And
then,
let's,
let's
have
a
look
and
in
the
code
base
to
see
what
that
Instagram
tab
is
doing
well
currently,
so
this
file
is
in
charge
of
the
tabs
and
the
tab
Behavior.
C
So
we
can
see.
Does
it
actually
should
be
another
tab
which
I
think
might
appear
if
I
reload
I've
been
switching
branches
a
lot
this
afternoon
yeah
here
we
go,
there's
also
a
matrix
tab.
C
Was
that
I
think
I
think
it's
because
I
I
changed
Branch
without
refreshing,
the
page,
because
this
is
the
metrics
tab
actually
loads?
Oh
yes,
slightly
interesting!
Actually,
the
this
is
it
here.
It
does
a
deferred
import,
so
it
actually
doesn't
load
immediately
when
you
load
the
page
or
when
you
load
the
JavaScript
bundle.
There's
like
the
main
JavaScript
bundle
that
just
like
test
file
gets
included
in
and
then
for
a
strange
reason.
We
load
the
metrics
table
later.
C
Yeah
we
do
that
it's
more
common
to
see
this
in
like
tests
and
stuff,
but
we
do
that
in
the
code
base
a
few
times
in
a
few
places.
One
advantage
is
that
I
think
the
reason
why
we
do
it
is
this
is
quite
a
heavy
bundle.
It's
pulling
in
the
entire
like
charting
library,.
A
C
At
one
point,
we
we
were
doing
like
some
performance
cleanup
to
make
to
reduce
the
size
of
entry
points,
and
we
worked
out
that
the
this
was
a
big
big
big
dependency.
C
We
only
load
the
tab
if
it's
and
incident
page.
So
that's
the
other
interesting
thing
about
this.
There
there's
like
some
shared
code
between
issues
and
incidents.
So
if
I
go
to
issues
and
click,
one.
C
C
Yes,
that
that's
right-
oh
yes,
so
I'm
loading
now
I'm
loading
an
issue,
that's
not
an
instrument,
and
oh
this
is
a
work
item.
C
We've
got
all
sorts
of
different
issues
in
there.
I've
got
issue
like
things.
Web
item
is
another
one,
but
I
think
I.
Think
this
isn't.
Oh
here
we
go
I
actually
made
one
called
yeah,
here's
one!
This
is
not
an
incident,
it's
an
issue,
but
ninety
percent
of
the
code
is
the
same
as
using
using
the
same
JavaScript
files
and
the
same
components.
C
Yeah,
so
you
arguably
consider
only
importing,
and
instead
of
only
deferring
the
metrics,
we
could
defer
all
of
the
incident
stuff.
That
could
be
another
valid
approach,
but
the
bulk
of
the
dependency
size
is
in
this
is
in
The
Matrix,
because
it
shows
charts
in
the
charter.
Library
is
large,
so
yeah,
it
was
primarily
like
a
performance
decision,
the
bundle
size
and
99
of
the
time
when
you're
loading
an
issue.
It's
probably
not
going
to
be
an
incident.
C
C
Yeah
yeah
a
good
bit
of
a
Sidetrack,
but
a
really
good
question:
yeah
yeah.
So
that's
why
that's
why
the
tab
was
not
loading.
B
C
A
C
Dependency
never
appeared
so
then
the
tab
just
didn't
render
yeah
yeah.
So
for
some
reason
it'll
be
to
do
with
the
like
the
webpack
hot
reload
that
we
use
I
would
have
switched
branches
to
hot
reload,
will
kick
in
it'll,
try
and
update
the
page
without
doing
a
full
refresh,
but
somewhere
along
the
way
that
deferred
import
got
lost
yeah.
C
C
Because
yeah
yeah,
exactly
the
hot
reloader,
only
runs
in
the
local
div,
environment
and
yeah
just
in
order
to
to
make
it
so
you
don't
have
to
refresh
the
page
every
time
you
update
some
code
thanks
yep
yeah,
so
right
now
we
have
these
tabs
and
they
they
do
switch
stuff.
But
it's
not
doing
anything
in
the
in
the
URL
yeah.
So.
C
Maybe
the
first
thing
we
want
to
do
what
what
I
do
if
I
was
working
on.
This
is
I
would
add
a
router
and
then
I
would
attach
some
debug
points
or
console
logs
just
to
see
if
I
can
get
it
to
get
it
to
recognize
the
the
like
tab,
switching
yeah.
So
this
is
where
the
the
alert
page
is
going
to
be
a
good
help
for
us.
C
Because
if
we
look
at
alert
details.view,
we
should
expect
to
see
some
router
stuff
happening
in
here,
because
we
know
that
there's
a
router
in
place
in
the
front
end.
C
So
if
I
set
it's
quite
a
large
file,
so
if
I
search
route,
I
can
see
a
couple
of
places
yeah,
that's
it
so
there's
some
stuff
where
it's
interacting
with
a
dollar
sign
route.
Dollar
sign
router.
C
The
this
to
me
is
like
an
immediate
clue
as
to
how
we
might
introduce
the
router,
even
without
looking
at
the
view,
router
Docs.
Whenever
you
see
this
dollar
sign,
it's
Pro,
it
means
it's.
This
is
something
that
exists
for
the
entire
view,
app,
it's
just
kind
of
like
a
it's,
not
a
role.
It's
like
a
pattern
that
things
follow.
C
You'll,
also
see
it
with
a
poem
If.
We
have
a
poor
in
this
yeah,
so
Apollo
you
can
see
his
dollar
sign,
Apollo
and
the
way
these
dollar
sign
things
get
attached.
B
C
View
is
in
the
base
view
app.
So
if
we
go
up
to
where
we're
saying
New
View,
so
this
is
I
was
in
alert
details
and
then
going
up
the
tree
to
the
like
index.js.
C
This
is
where
the
view
app's
being
made
and
it's
look
assist
adding
an
Apollo
provider
because
it's
like
the
normal
way
to
integrate
Apollo
and
it's
also
adding
the
router
at
the
base
level
yeah.
So
if
we
would,
if
we
wanted
to
add
a
router
in
our
use
case,
we're
going
to
have
to
do
a
similar
thing.
C
Yeah
stop
me
if
that
doesn't
make
sense,
because
that
makes
sense,
it
might
be
a
bit
advice,
but
yeah,
so
we've
got
I
can
see
that
Imports.
We
creating
a
router
here
right
when
the
the
page
gets
first
run
so.
B
This
is
creating
a
router
within
this
view
app,
but
there
might
be
another
router
that
is
apparent
to
this
view.
App.
A
C
C
C
C
C
D
If
you
just
close
the
dev
tools
and
reopen
them,
it'll
appear
I
just
wanted
to
call
out
quickly
the
where
I've
fallen
down
a
rabbit
hole
in
the
past
that
the
The
View
and
this
stop
dollar
route
is
nothing
to
do
with
you
router,
and
you
saw
there
that
there
was
this
stock
dollar
route,
and
this
dot
dollar
router
is,
is
all
to
do
with
the
eurater
and
this
that
dollar
Roo
is
just
more
of
an
underlying
I.
Think
that's
almost
like
window.location,
so
yeah
this.
C
C
Right,
yeah,
I
yeah
that
that's
new
information
for
me
I
just
assumed
that
they
were
both
added
by
by
the
router
yeah.
So
there's
there's
a
whole
bunch
of
uaps
being
loaded
on
any
given
page.
You
can
see.
C
There's
a
bunch
of
sidebar
lines,
there's
one
for
the
top
nav
and
there'll
be
one
for
the
the
issue
itself
yeah.
It
may
not
be
a
named
one
as
well.
They
don't
always
get
named.
C
That
was
just
like
a
that
whole
view.
It's
just
a
button.
B
C
C
One
well
this
this
would
seem
like
we
can
have
one
router
per
view,
app,
it's
the
right
or
because
it's
created
the
router
is
created
outside
of
the
app
in
this
index.js.
So
it's
created
up
here.
You
could
conceivably
give
that
router
to
several
View
apps.
They
would
all
share
a
router.
C
Yeah,
so
that
might
be
what
we
end
up
doing
yeah.
C
C
It's
doing
this
for
you.use
thing,
which
I
don't
actually
fully
understand,
but
is
required
for
certain,
like
plugins
and
libraries
that
we
usually
viewed
I.
Think
it's
just
telling
it's
just
telling
the
global
view
that
we
are
integrating
the
router
so
that
it
can
activate
certain
features,
maybe
or
or
certain
like
prerequisites
can
get
loaded
into
the
global
view.
C
Like
config
but
I'm,
not
100
sure,
but
yeah
I'd
suspect
it's
it's
something
like
that.
Like
setting
some
global
conflict
and
then
yeah,
we
create
the
router
and
it's
being
passed
like
a
few
options,
and
then
these
options
are
going
to
be
interesting
to
us
for
the
router
that
we're
going
to
use
on
the
incident
page
yeah.
So
at
this
point
it
would
probably
be
interesting
to
see
if
it
already
is
a
router
being
used
by
issues.
So
we
could
go.
Have
a
look
at
the
issue
entry
point.
C
So
this
was
the
entry
point,
the
sort
of
JavaScript
entry
point
for
the
alert
page,
so
I'll
hop
on
over
to
the
index
.js
for
issues.
C
Just
from
memory
I
know
that
I
just
happen
to
know
that
the
issue
page
is
called
issues.
Slash,
show.
C
Yeah,
cool,
I
I
think
that's
that's
from
rails,
that
naming
convention
and
we
don't
seem
to
do
that
anymore
for
new
pages,
but
issue
being
one
of
the
oldest
ones
that
must
have
show
in
it
yeah.
If
you
were
to
look
at
like
the
rails,
around
docs.
C
Oh
actually,
I,
don't
know
the
exact
page.
Possibly
this
one
you
can
see
you
can
see
like
show,
shows
up.
C
C
It's
kind
of
like
rails
naming
convention
where
an
individual
page,
they
call
that
resource
the
show
resource
and
you
have
a
controller
for
show
and
then
you
might.
Then,
if
you
have
like
a
list
or
like
a
base
page,
you
might
call
that
index
so
you'd
also
have
an
index
controller,
okay
or
a
list
controller,
so
show
that's.
Where
show
comes
from?
Oh
here's,
here's
like
the
full
set
of
ones
that
I
think
rails
will
actually
automatically
set,
can
set
these
up
here.
C
If
you
like
so
show
it's
it's
kind
of
like
a
naming
convention
in
rails,
for
these
different
controllers
that
correspond
to
different
pages
yeah
and
they
kind
of
loosely
correspond
to
like
crud
actions.
If
you're
familiar
with
those
I
am
not
yes,
yeah.
It's
like
a
APF
for
like
backing
people.
They
might
know
that
when
you
have
an
API,
you
typically
for
every
resource,
you'd
have
like
create,
remove
no
crap
rename
update,
delete
or
something
like
that.
It's
like
four,
like
things,
create
read,
update,
delete,
I.
D
Just
popped,
a
link
in
the
chat,
that's
really
really
helpful,.
D
Link
every
single
time
I,
but
this
this
lists
all
of
the
ropes
and
you
can
see
a
good
example
of
if
you
scroll
down
somewhere
you'll,
see
something
that's
got
like
the
hash.
New
hash
create
hash,
destroy
hash,
show
that
sort
of
thing.
C
Yeah
I
haven't
found
one,
but
here's
like
a
slash
new
yeah
yeah.
C
Yep
yep
and
yeah,
so
for
whatever
reason
in
rails,
show
kind
of
corresponds
to
hey
you're.
Looking
at
a
single
item,
then
then
they
always
load
the
show
page
and
then,
for
that
reason,
at
some
of
JavaScript
has
show
index
in
it.
B
C
Case
it's
like
a
single
issue
in
the
case
of
alert
management,
it's
like
a
single
alert,
yeah
yeah
and
a
lot
of
that
stuff,
so
kind
of
like
automatically
set
up
by
rails,
and
then
we
just
put.
We
just
put
a
Javascript
file
in
the
right
place
with
that
naming
convention
and
it
will
the
Hamel
like
when
it
loads.
The
page
it'll
escape
the
hammer
and
it
will
like
pull
in
that
Javascript
file
just
because
it's
like
named
to
be.
B
C
C
It's
it's
a
bit
strange
if
you
haven't
used
rails
and
you're
trying
to
work
out
like
where
the
JavaScript
starts
from
yeah,
so
it's
definitely
useful
to
know
if
you're
doing
contributions
and
you
get
you're
not
having
to
get
like
that
fire
up
the
JavaScript
tree
that
you
want
to
find
like
the
highest
level.
Entry
point
yeah.
So
in
this
case
we
have
this
this
index.js
for
show
on
issues
and
it
this
is
gonna,
be
what
creates
the
issue
app.
C
So
we've
got
an
issue
app
which
does
the
new
view.
So
there's
always
a
new
view
at
the
top
level
of
every
view
app
and
in
this
file.
There's
actually
a
few
of
them.
C
C
So
this
is
where
we
would
need
to
add
the
router,
so
we
would
do
something
like
const
router
equals
create
rather
and
then
yeah.
This
will
be
added
into
the
view
app,
similarly
to
how
we've
already
done
it.
For
Apollo
yeah-
and
this
will
add
a
router
to
that
viewer
and
then
once
we're
in
the
view
app.
We
can
go
like
this
dot
dollar
sign
router
and
you
can
see
stuff
yes,
so
we
need
to
create
this.
C
B
A
B
C
Correct,
that's
actually
what
we
were
here
for
pretty
much
just
looking
at
the
view
at
this
is
not
already
a
router,
so
that
tells
me
that
we're
safe.
C
No,
they
could
have
separate
routers,
yeah,
okay,
yeah
yeah
and
we'll
see
a
little
bit
of
how
it
works
once
we
dive
into
it,
because
there
is
some
configuration
you
provide
to
a
router
which
is
the
the
base
which
tells
it
at
which
point
in
the
URL,
because
you
have
like
a
long
URL
at
which
point
does
the
the
router
start
caring
about
the
URL?
B
C
Yeah
that
possibly
doesn't
make
full
sense,
but
like
for
an
example
in
the
alert
management
case.
All
of
this,
this
slight
initial
stuff
is
not
important
for
the
router.
It
only
really
cares
about
that
last,
like
slash
overview,
so
we
would
set
the
preceding
stuff
as
the
base
and
then
the
router
only
attaches
to
that
last
section
yeah,
but
the
the
interesting
thing
with
the
router
is.
C
C
B
A
C
Yeah
nice,
but
it
will
be
important
for
when
we
want
to
reload
the
page,
because
the
router
needs
to
initialize
itself.
At
that
point,
and
instead
of
just
having
like
issues,
seven
we're
going
to
have
issues,
seven
slash
timelines
and
that
base
tells
it
that
up
to
the
seven,
is
not
its
concern
and
then
everything
after
so
the
slash
timeline
is
the
concern
of
the
router.
So
it
will
sort
of
attach
itself
at
that
point:
okay,
yeah!
So
we
have
here.
C
We
have
index.js,
we're
gonna,
add
a
new
router
file
here,
which
we've
done
and
I'm
initially
I.
Think
I'm
just
going
to
use
the
alert
router
directly.
B
You
broke
up.
There
say
that
again,
oh.
C
And
initially
I'll
just
use
the
this
alert
router
directly,
so
copy
all
of
the
same
code
over
because
I
think
it
apart
from
the
hash
which
we
can
change,
I
think
it
makes
sense
so
far
yeah
because
it
has
some
bass
functionality.
We
can
pass
this
in
a
base
yeah,
which
will
probably
look
slightly
different,
but.
C
A
C
C
Yeah
so
reload
switched
it
off.
C
Oh,
it
did
yeah
cool,
so
it
was
possibly
working
something
but
yeah
you're
right,
I
loved
it
rather
yeah.
So
that
looks
like
it
worked.
We
have
the
graphic
and
on
the
page,
so
I
could
even
commit
this.
C
Sorry
I
added
on
another
screen
to
consider
new,
app
and
I
can
push
and.
B
C
This
hash,
that's
right,
yeah,
that's
exactly
right!
Yeah
and
you
can
actually
see
when
I've
Reloaded,
let's
added
a
hash,
slash
to
the
URL.
We
don't
want
the
hash
right.
Yeah,
that's
right!
Yeah,.
C
I
should
probably
set
this
thing
like
it's
helpfully
suggesting,
but
I
haven't
and
yeah.
It's.
C
I
want
neither
so
I
wonder
if
that's
new,
but
oh
yeah.
It
doesn't
like
console
statements
of
course
yeah
since,
since
we're
showing
what
we
were
just
doing
like
daily
development,
there's
like
either
I
could
do.
I
could
disable
this
for
that
line.
If
I
still
want
to
push
it
I,
don't
really
want
to
move
it
right
now.
I
could
use
a
debug
statement
in
the
browser
instead
of
a
console
log,
so
I
could
and
the
debugger.
C
Edit
debug
statement
there's
a
lot
going
on
there,
but
so
that
alt
p
is
that
yeah,
so
here
command
P
opens
this
thing.
I
could
like
jump
to
the
incident
tabs.
C
Cool
and
then
I
could
go
down
to
that
line
or
just
above
it
I
could
add
a
deep
extent
here
then
I
could
remove
this
console
log
and
then
I
could
even
put
a
watch
expression
on.
C
Yeah,
oh
nice
yeah
that
works
too
yeah
come
up
here.
I
think
it's
the
same
as
like
vs
code.
C
A
C
It
don't
really
have
to
yeah
sort
of
learn,
yeah
and
then
the
other
thing
I
wanted
to
quickly
show
was
that
if
you
wanna
skip
this,
you
can
do
no
verify
and
also
because
I
know
the
pipeline
will
fail.
You
can
do
see
I
skipped.
If
you
don't
want
to
run
the
pipeline.
That
might
be
a
useful
little
tip
that
people
don't
know
about.
B
Is
this
like
pre-push
hook?
Is
it
new.
A
C
No,
it
is
useful,
it's
good
because
it
saves
like
running
big
CR
jobs
that
you
know
are
going
to
fail
and
things
like
linting
and
stuff
can
run
relatively
quickly
locally,
so
it
makes
sense
to
do
that.
C
B
C
Yeah
yeah,
that's
right,
yeah,
so
we'll
we'll
be
slightly
naughty
and
just
skip
the
hook
for
now.
B
B
Also
helpful
for
like
asking
for
help,
asynchronously
I
think
is
usually
like
you.
B
You
just
call
the
person
and
share
your
screen,
but
yeah
in
this
case,
it'll
be
a
slack
message
to
the
channel
or,
if
you're,
a
community
in
the
Discord
or
in
the
guitar,
where
you
can,
post
or
in
an
issue
or
a
merge
request
as
well,
where
you
can
post
to
say
like
here's,
the
issue
I'm
having
what
is
the
problem
I'm?
Having
is
the
code,
any
ideas.
A
C
Quickly
make
it
actually
I
guess
this
is
like
maintenance,
it
could
be
a
feature
because
we
are
going
to
add,
add
the
hash
stuff
by.
B
C
Yeah,
this
is
a
shorthand
one
of
the
mini
slash
commands
that
you
can
run
table
flip
this
one
yeah
I
often
use
probably
the
label
one
as
the
one
I
use
the
most,
because
I
find
it's
a
lot
of
clicks
to
use
to
drop
down,
especially
if
you
know
you
don't
have
to
search.
You
just
know
what
the
label
is.
Another.
D
Neat
tip,
although
I'm
not
sure
if
it'll
work
for
Community
contributors.
But
if
you
name
your
branch,
starting
with
the
issue
number.
D
Metadata
will
automatically
copy
over
from
the
the
issue.
So
all
of
the
labels
and
Milestone
and
I
can't
think
if
there's
anything
else,
but.
C
B
C
D
C
When
you
push
yeah
right,
yeah.
D
D
Stuff
then
just
sort
of
skipping,
but.
C
Yeah
yeah
I
think
we
we
support
quite
a
lot
of
the
the
merge
request,
workflow
just
through
the
CI,
the
sorry,
the
command
line
interface,
which
is
cool
yeah,
but
yeah
me
personally,
I
just
use
that
link
take
it
gets
suggested
and
then
yeah.
If
we
want
to
follow
along
with
the
changes
as
we
go,
that's
it
there
yeah.
So
next
is
probably
what
James
suggested
butchers
to
update
the
hash
to
the
history.
B
Sorry
one
question
Lee
this
this
functionality
to
add
the
metadata
to
your
merge,
request:
I
assume.
If
it's
set
up
for
gitlab
team
members,
you
can
set
that
up
in
your
own
repo
to
do
that
automatically.
D
Do
you
know
what
I
think
it's
baked
in
functionality?
I,
don't
think
it
uses
any
any
kind
of
what
I
call
it
web
hooks
or
any
magic
I'm
just
gonna.
Look
it
up
in
the
docs
quickly
and
see
if
I
can
share
a
link.
B
C
Yeah,
so
it
did
insert
an
extra
slash,
which
is
interesting.
C
Yeah,
so
that
tells
me
the
route
is
still
doing
something,
and
then
this
page
for
some
reason
it
takes
a
long
while
the
GDK
definitely
does
this
sometimes
yeah.
So
we
have
a
router
we
are
in
in
the
tab
page.
C
We
are
interacting
with
the
router
and
a
minor
way
already,
of
course,
already
oh
wait
I'm
in
the
wrong
one
file,
yeah
in
Mount,
Edge
yeah,
so
we
know
that
the
route
is
there.
Now
we
can
look
at
maybe
what
what
is
the
alert
page
doing
with
the
router.
C
Yeah,
so
it's
got
got
a
couple
of
things:
Stone,
it's
Computing
an
active
tab
which
looks
like.
C
So,
let's
see
where
this
has
been
used,
yeah
so
GL
tabs
has
an
input
event
and
a
value
property
which
you
can
combine
into
V
model
so
that
whenever
you
either
need
to
read
like
the
tabs
need
to
read
the
tab
index
or
set
the
tab
index,
it
will
go
up
to
this
property,
which
is
cleverly.
You
can
and
view
you
can
Define
it
and
compute
it
with
v
model,
and
you
can
write
a
set
and
a
getter,
and
these
will
run
every
time
this
is
set
or
get
which.
D
A
D
C
Okay,
yeah
there's
a
few
there's,
definitely
a
few
ways
we
could
implement
this
I
like
this
approach,
because
it
allows
us
to
keep
continue
using
GL
tabs
without
having
to
switch
like
we
could
switch
to
jail
nav.
C
Then
we
need
to
reskin
jail
nav.
It
was
something
we
had
talked
about
doing
that
nav
is
oh,
my
brows
is
just
completely
gone.
Oh
there
we
go
when.
B
You
say:
risk
nav,
you
mean,
like
add
the
functionality
to
gitlab
UI,
that
we
want
to
use
yeah.
C
Yeah
yeah,
so
if
we
want
to
keep
the
look
and
feel
of
the
tabs,
which
is
what's
in
the
design,
then
the
GL
tabs
component
is
the
easiest
way.
And
then,
if
we
use
gel
tips,
we
can
use
this
v-model
to
effectively
subscribe
to
any
updates
and
also
we
can
use
it
to
force
the
tab
to
change
based
on
what
is
in
the
router.
C
Yeah
yeah
because
it
because
it's
the
model,
it's
both
reading
and
writing
to
the
current
term
index.
So
if
something
else
changes
the
tab
index,
the
UI
will
automatically
update
to
reflect
that
or
we're
also
giving
control
to
the
tabs
component
to
change
the
tab
index,
which
it
does
when
you
click
different
tabs.
C
Yeah.
The
The
View
dots
have
a
really
good
breakdown
of
v-model.
It's
basically
when
you
have
an
input
event,
as
well
as
a
value
on
a
component.
C
B
In
data
you
have
like
a
like
a
simple
string
or
a
number,
so
yeah
changes
easy
so
that
yeah
it's
just
what
is
it
now
in
the
set,
is
just
updated
but
yeah.
This
is
different
because,
like
why
is
this
different?
Why
do
we
need
to
specify
the
get
and
the
set.
C
Right
because
we
want
to
do
a
side
effect
on
okay
on
one
of
those
yeah
you're
right.
That's
a
good
question.
B
C
C
C
I
forget
what
the
other
tabs
are
summary
and
stuff.
So
the
return
value
of
this
is
a
string
and
then,
oh
sorry,
the
return
value
of
this
as
a
Boolean
active
tags
is
a
string.
Then
it
will
find
the
index
of
that
string.
That's
returned
in
the
config
and
then
we'll
give
back
a
number,
because
what
the
tabs
component
takes
in
gitlab
UI
is
like
zero
for
the
first
tab,
one,
that's
the
second
tip
2013.
C
Those
are
the
indexes
so
like
I
guess
to
demonstrate.
If
I
had,
if
I
say
yeah.
Let's
look
at
the
view.
B
Move
on,
we
are.
C
C
D
C
Yeah,
that
sounds
good
I.
We,
we
could
also
maybe
say
finish
in
15
minutes
or
something
just
wherever
we
get
to
yeah.
C
Yep
yeah
because
unfortunately
I
don't
have
much
longer
yeah,
so
we're
looking
at
tabs
and.
C
B
A
C
Yeah
yeah,
it's
a
good
good
point
to
mention
a
lot
of
the
components
that
we
have
in
gitlab.
Ui
are
rep.
They
sort
of
write
some
bootstrap
view
functionality
in
some
cases,
it's
as
simple,
as
we
just
provide
our
own
style
or
in
other
cases
it's
like
adding
new
functionality,
yeah.
C
I'll
be
interested
to
see
if
there's
a
b
model
example
yeah
programmatically,
activating
deactivated
tabs,
that's
actually
what
we
want
to
do.
Oh
no!
It's
not!
We
don't
want
to
activate,
but
we
want
to
like
navigate
to
and
from
tabs
so
yeah.
An
external
control
is
like
a
good
example
of
this,
where
you're
clicking
some
unrelated
button
and
it's
like
changing
a
tab.
View
and.
C
Yeah,
if
you
have
the
data
tab
index
and
you
view
model
that
this
would
be
like
the
normal
way
without
the
Getters
and
Setters,
then
this
and
then
yeah
you,
you
mutate
that
belly.
B
A
C
Not
quite
we
are,
we
are
essentially
boiling
the
num,
the
string
down
to
a
number
okay
and
then
it,
but
we
want
to.
We
want
to
link
it
with
the
router
at
the
same
time
yeah.
So
what
we
do,
instead
of
instead
of
only
storing
the
tab
index,
we
store
the
active
tab
as
the
string.
C
When
we
want
to
read
the
tab
index,
we
just
sort
of
boil
down
the
active
tab
into
what
whatever
that
number
should
be
and
then
in
the
other
direction.
Let
me
set
it
so
this
is
this
happens.
When
you
click
tab,
it
will
set
the
tab
index.
C
We
actually
want
to
fire
off
something
on
the
router
to
say:
oh
someone's
clicked
on
a
tab.
Let's
add
that
tab
ID
to
the
URL
to
make
sure
that
they're
still
in
sync
yeah
in
the
other
thing
that
this
active
tab
does
is
by
having
it
separately.
C
We
can
say
if
there's
no
param
tab
ID,
which
will
be
the
case
on
the
first
load
of
the
page,
because
the
router
is
just
like
in
this
default
state.
Then
we
make
the
active
tab,
the
first
tab.
C
So
that's
the
zero
in
the
list
of
tabs
and
in
that
way,
when
the
tab
tabs
read
the
they
read
the
active
tab
to
see
which
tabs
active,
then
then
it's
that
first
one
by
default.
D
It's
it's!
It's
bugging
me
this
I
I
think
I
might
reach
out
for
some
other
opinions,
but
view
router
provides
this
awesome.
What's
it
called
I've
got
it
open
in
front
of
me.
So
let
me
just
scroll
down
oh
root
of
you.
How
I'm,
using
so
yeah
view.
A
D
Provides
root
of
you,
which
is
is
almost
like
an
iframe
is
how
I
picture
it
in
my
head.
It's
kind
of
like
a
placeholder
where
view
router
will
load
whatever
it
wants
to
load
or
whatever
you
want
it
to
load.
So
it's
yeah,
you
kind
of
put
a
placeholder
in
like
pretend
it's
a
div
or
an
iframe
or
whatever,
and
you
call
it
root
of
you.
D
Then,
when
you
tell
view
router
what
all
of
its
roots
are
and
if
you
like,
like,
if
I,
do
forward,
slash
timeline,
you
want
it
to
load
this
component
into
router
view.
If
you
do
forward
slash
details
or
forward
slash,
metrics
or
forwards,
so
you
tell
it
for
each
row
which
component
you
want
it
to
load.
So
then
it
does
everything
for
you,
but
if
we
want
to
use
tabs,
that's
where
it's
it's!
These
two
things
kind
of
in
my
head
are.
C
See
well,
yeah
yeah.
No,
it's
exactly
right
and
we
did
talk
about.
We
did
talk
about
that
in
the
original.
C
No,
we
we
kind
of
skimmed
over
it
I
mean
that
that's
definitely
another
another
thing.
We
should
investigate.
There's.
C
Some,
the
only
thing
is
that
there
is
some
complexity
on
the
page
that
might
cause
some
issues
with
that.
So
one
example
is
that
that
would
definitely
work
for
the
View
apps
that
get
displayed
by
these
buttons.
C
But
then
we
have
this
like
web
of
other
things
that
also
get
affected
by
the
tips.
So
the
these
sections
here
like
below
the
or
even
this
edited
and
then
below
some
of
these-
are
in
different
View,
apps
and
I'm,
not
sure
right.
D
C
D
Yeah
but
I
guess
I
saw
the
summary
tab,
almost
the
top
content
of
the
summary
tab
as
being
one
and
view
component,
the
metrics
tab,
content
being
another
view
component,
the
timeline,
if
each
of
those
is
a
component
that
wraps
obviously
lots
of
little
components,
the
tasks
and
the
links
and
the
reactions
and
the
etc
etc.
Then
yeah
root
of
view
view
router
would
would
just
work
natively
out
of
the
box.
It.
C
Would
yeah
and
that
that
would
be,
that
would
be
the
ideal
oil
approach
that
may
still
end
up
being
the
solution
so
that
that's
kind
of
a
conclusion,
in
my
mind,
of
like
Can
the
router
be
exported
to
these
other
apps
yeah.
Sorry.
C
Oh,
the
the
third
issue
with
that
is
that
some
of
these
aren't
even
in
view
they're
just
in
Hemel,
so
that
I
mean
no
matter
which
way
you
end
up
preparing
the
router.
It's
not
not
going
to.
C
Yeah
yeah
that's
right
and
you
can
see
the
existing
method
and
all
of
its
Glory,
where.
C
So
this
is
I
probably
should
have
showed
this
at
the
start.
This
is
kind
of
another
benefit
of
heading.
The
router
is
is
not
just
to
get
the
sort
of
Hesh
anchor
stuff
working,
but
also
it
would
be
nice
to
remove
as
much
of
this
as
possible
and
replace
it
with
router,
but
yeah
I
think
you're
you're
right
and
that
the
the
router
view
component
definitely
warrants
investigation
and
I
am
probably
going
down
a
rabbit
hole
with
the
the
way.
D
After
you
sort
of
bring
in
all
of
those
issues,
I
think
that
you
know
we
love
iteration
right,
so
I
I
think.
D
Actually,
where
you're
going,
you
will
will
maybe
be
like
a
baby
step
in
the
right
direction
to
be
like.
Well,
if
we
add
view
router
and
we
use
view
router
to
kind
of
manipulate
the
URL
provide
the
history,
allow
you
to
link
directly
to
where
you
want
to
go,
it's
it's
a
step
in
the
right
direction
and
then
at
a
later
stage,
if
we
can
leverage
route
of
view
and
and
remove
some
more
of
their
I,
don't
know
what
to
call
it
bastardization
or
happiness
or
whatever.
Then
brilliant.
C
Yeah,
yeah
and
I
think
yeah
I
think
both
both
ways
are
differently
with
checking
out
and
both
could
be
made
iterable
as
well
like.
C
If
you
went
down
the
approach
of
of
using
the
router
view
component,
you
could
initially
just
leave
the
scissors
and
then
find
let
iteratively
go
through
each
of
these
selectors
and
and
see
if
they
can
be
replaced.
Some
of
them.
C
That
approach
definitely
would
work
for
sure,
because
the
edit
button,
for
example,
is
in
the
same
view
app
so
that
one
could
be
done,
yeah,
it's
not
in
the
tabs,
it's
above,
but
that's
the
perfect
candidate
for
the
router
view,
because
it's
already
in
the
same
view
app
and
tabs
aren't
taking
care
of
it.
So
by
using
router
view
you
would
it
would
be
a
direct
Improvement,
yeah.
C
Yeah,
do
we
all
we've
got
five
minutes
left?
Do
we
want
to
keep
looking
at
code,
or
is
it
maybe
something
did
we
cover
all
the
questions.
C
A
B
I
think
yeah,
so
we
touched
on
like
interacting
with
gitlab
UI
and
adding
the
functionality
there
where
we
need
it.
So
maybe
it
would
be
useful
to
talk
about
this
a
little
bit
because
yep
yeah
one
option
we
have
is
with
the
tabs
you
could
use
if
we
could
update
how
gitlab
UI
uses
tabs
to
be
more
in
line
with
like
what
we
what
we
want
elsewhere,
because
if
we
don't
want,
if
here,
we
don't
want
to
use
URL
query
params,
just
like
question
mark
tab
equals
summary
or
whatever.
D
C
Yeah,
that
would
that
that's.
My
first
thought
as
well
is
I
guess
it
would
be
interesting
to
know
if
the
get
like
UI
already
includes
the
router
for
anything.
C
D
So
when
we've
got
stuff,
true
yeah
I,
don't
if
you
call
it
tightly
coupled
if
that's
the
right
word
but
yeah,
there's
a
few
cool
components
that
one
that
I've
worked
with,
especially
recently.
That's
like
a
a
tab.
You
a
table
list
which
has
got
tabs.
It's
got
counts
in
all
of
those
tabs.
It's
got
sorting
and
filtering.
It's
got
like
a
search
bar
like
the
issues
screen
got
all
of
this
stuff
built
in,
but
it's
it's
too
kind
of
tightly
coupled
to
be
part
of
gitlab
UI.
C
Yeah
yeah
in
the
place
where
those
live
is
this
view
shared
folder
and
there's
actually
one
for
PE
as
well,
I
believe,
but.
D
I
love
that
idea
of
having
a
reusable
I,
guess:
I,
don't
know
what
we'd
call
it,
but
like
a
tabs
component
that
massively
leverages
view
router
rather
than
I,
guess:
I,
don't
know
how
view
router
really
works
behind
the
scenes,
but
rather
than
at
the
moment,
I
guess
all
the
data's
on
the
screen,
but
just
kind
of
hit.
Well,
no
I!
D
C
Yeah,
it's
it's
one
of
the
difficulties
of
having
something
like
get
lab
UI,
where
it's
a
third
party
framework.
That,
in
theory,
is
reusable
outside
of
gitlab
yeah,
and
then
you
have
things
that
sort
of
cross
over
into
it.
A
little
bit
too
specific
of
a
use
case
to
include
in
such
a
general
library
or
yeah
in
the
case
of
the
router
I
think
it
needs
it
would
need
like
That
Base
URL
that
I
was
talking
about
earlier,
so
it
wouldn't
be.
You
couldn't
fully
encapsulate
it.
C
You'd
need
to
provide
some
config
to
it
and
at
that
point
yeah
you
may
as
well
bring
it
into
gitlab,
because
that
that's
going
to
be
config
about,
like
the
current
page,
that
you're
on
or
whatever
and
get
there
I
mean
definitely
code
thick.
So
we
reusable
in
itself
but
I
think
the
usefulness
is
slightly
decreased
at
that
point,.
A
A
D
C
Just
if
it
diverges
enough
from
yeah
from
the
the
goal
of
the
of
get
lab
UI,
which
is
like
a
reusable
UI
Library.