►
From YouTube: [LIVE CODING] Community office hour call Jul 26 2022
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
Hello,
everyone
welcome
I
forgot
to
get
your
consent,
but
we're
the
same
people
since
the
last
time,
so
I
think
we
have
consent
for
live
streaming
and
recording
right
perfect.
Thank
you.
All
right.
Welcome
to
another
office.
Article
today
is
going
to
be
a
bit
different
because
we're
gonna
do
more
live
coding.
A
Thank
you
so
much
thanks
for
offering
and
for
everyone
who,
like
time
into
the
theater
conversation,
and
they
were
supportive
of
that
some
other
people
might
be
joining
later.
But
before
we
talk
into
that,
I
just
wanted
to
give
a
quick
update
in
regards
to
the
hackathon.
We
have
our
quarterly
hackathon
happening
next
week.
It's
gonna
be
the
first
one
week
long
hackathon
we're
trying
a
new
format
to
make
it
like
more
inclusive
in
terms
of
we
started
having
it
like
during
the
week
and
then
during
the
weekend.
A
But
again
it's
always
like
tricky
for
people
who
don't
have
time.
Some
people
could
not
do
it
during
the
week.
Some
others
could
not
couldn't
do
it
during
the
weekend.
So
right
now
we're
trying
something
different
about
one
week
long.
A
The
format
is
relatively
easy.
We're
gonna
be
hosting
as
a
kickoff
call
on
next
Tuesday
we're
gonna
host
continued
hosting
of
guitar
calls
in
order
to
be
able
to
support
any
big
punishments
that
might
be
have
any
issues
we're
gonna
be
online,
as
always
on
our
guitar
and
B
support
to
provide
support
if
needed.
A
In
order
to
participate,
you
don't
have
to
register
anywhere,
just
start
contributing
and
you
need
to
open
and
submit
that
NMR
to
oh.
Actually,
let
me
quickly
share
my
screen.
I
think
it's
gonna
be
easier
to
that
way.
A
At
least
they
had
they
hack
out
the
website,
so
nothing
crazy.
You
just
contribute.
So
the
idea
is
like
to
find
a
defining
Instagram
tribute
to
and
you
need
to
submit
NMR
ignore
the
233
Mr
submitted.
It's
gonna
be
like
it
first
and
you
need
to
just
like
submit
the
number
between
the
second
of
August
until
the
the
9th
of
August
we
made
known
you
the
same
button,
pretty
simple,
pretty
straightforward,
and
then
it's
gonna
take
us
like
allow
us
to.
A
We
need
to
allow
us,
like
around
a
month,
to
review
all
of
our
all
of
your
remarks
and
after
one
month
we're
gonna
be
announcing
the
the
winners.
There
are
gonna,
be
three
category
three
areas:
three
categories:
where
we're
gonna
count,
Mrs
front
and
back
end
security,
technical
writing
and
website,
meaning
that
every
Mr
that
is
contributing
to
an
issue.
A
A
For
example,
here
this
is
like
announcing
the
previous
winners
so
from
then
this
was
like
the
ground
by
second
price
participation
prize
back
end
technology.
Writing
each
area
in
terms
of
the
prices
we
will
be
announcing
them
tomorrow,
grand
prize
second
price
and
the
participation
price
departure.
Everyone
gets
the
price.
Let
me
zoom
in
a
bit.
A
This
is
like
placeholder,
but
we're
gonna
be
announcing
tomorrow,
and
everyone
gets
a
price,
even
if
everyone
who's
it
has
at
least
one
a
mark
merge.
So
it's
not
like
the
people
who
are
the
most
points
gathered
per
and
yeah
gonna
get
the
grand
prize
second
price
for
other
people.
The
participation
for
people
who
have
emergency
at
least
have
one
at
least
one
Mr
mermaids.
A
What
I
wanted
to
say
in
regards
to
that?
Yes,
really
important
your
the
Mrs
to
be
contributing
to
an
existing
issue.
That's
the
most
important
thing:
if
you're,
if
you
have
an
MRI,
that's
going
to
be
LinkedIn
issue
or
Mrs
account,
it's
get.
It
gets
Five
Points.
If
it's
not
could
have
been
Indonesia.
It
gets
three
points.
C
D
Right
cool
thanks
so
I
yeah.
So
today
is
a
bit
of
an
experiment.
What
I
wanted
to
do
so
last
week,
I
prepared
a
lot
more,
so
I
was
able
to
run
through
everything
quite
quickly
and
this
week
what
I
wanted
to
do
was
could
I
throw
it
a
lot
slower
and
so
this,
so
you
can
see
in
real
time
where
I
get
information,
how
I
find
it?
D
What
I
look
for
yeah
I
think
it'll
be
useful
for
you,
because
again,
I've
only
been
a
gitlab
a
few
months
and
I've
only
been
a
front-end
engineer
for
a
few
years.
D
So
sometimes
I
I'm
not
not
super
quick
on
this,
but
it's
really
normal
and
often
when
you're,
particularly
when
you're
learning
you
put
a
lot
of
pressure
on
yourself
to
be
quicker
and
to
have
all
the
answers,
and
it
certainly
not
what
you
need
so
yeah
also
teaching
it
in
a
in
a
volunteer
code
School
in
Berlin
and
one
of
the
things
I
say
a
lot
is
like
you
need
the
skills
that
you're
aiming
for
is
to
get
a
job
and
then
once
you
have
a
job,
then
you
can
improve,
but
once
you
have
a
job
you
know
like
that's,
that's
the
goal
for
a
lot
of
beginners,
so
anyway,
I'll
something
so
I'm
going
to
work
on
this.
D
This
issue
here
I'll
share
the
link.
So
you
can
see
the
details.
D
So
this
is
an
issue
that
my
team
is
working
on,
so
the
team
that
I
work
on
is
monitor
respond
to
what
we
take
care
of
is
so
when
you
have
your
your
your
website
running,
you
can
have
it
monitored
on
gitlab,
and
in
here
you
have,
you
can
create
incidents.
So
the
way
this
works
with
incidents
is
it's
really
similar
to
an
issue,
so
these
can
be
created
automatically.
Maybe
your
websites
down
first
I,
mean
obviously
that'll
be
a
major
incident.
D
It
can
be
a
smaller
one,
so
you
can
have
an
incident
and
then
on
the
incident.
This
is
all
quite
a
new
area
of
gitlab
that
we're
still
building
out,
so
timelines
has
only
just
been
released,
for
example.
So
this
is
the
area
that
I
work
on
in
monitor
in
response.
So
what
we're
going
to
look
at
today
is
the
on-call
schedules.
So
again
it's
quite
new,
but
the
idea
is
to
have
a
record
of
who
is
on
call
for
this
time
and
we
can
have
different
schedules.
D
So
I
I
was
doing
some.
Some
visual
changes
to
this
uncalled
schedules,
but
this
issue
is
the
create
schedule
and
rotation
buttons
should
be
hidden
for
certain
users.
So
on
gitlab
you
have
levels
of
users.
Let's
I,
don't
remember
what
I.
D
So
different
levels
have
different
permissions
to
have
guest
reporter
developer
maintainer
owner
and
for
the
on-call
schedule.
We
might
be
able
to
see
you
know
so
follow
on
call
schedule.
You
need
to
be
I,
think
it's
maintainer
or
owner
we'll
have
a
look
at
the
issue
to
actually
make
a
new
schedule
so
I'm
on
the
GDK
at
the
moment,
so
I'm
logged
in
as
the
administrator
so
I
can
I,
have
access
to
everything.
So
I
can
create
a
new
schedule,
no
problem.
D
So
what
I
want
to
do
in
this
issue
is
if
you're
logged
in
as
a
developer,
not
as
a
maintainer,
so
maybe
reporter
or
developer
you
shouldn't
be
able
to
see
the
the
schedule
button.
Currently
you
can
see
it
and
it
will
error.
If
you
try
to
create
a
schedule
to
say
hey,
you
don't
have
permission
to
do
this,
but
ideally
you
wouldn't
be
able
to
see
the
button
at
all.
D
So
that's
what
we're
going
to
work
on
so
in
order
to
do
this,
what
we
need
to
be
able
to
do
is
impersonate
a
user,
so
I
could
like
log
out
and
log
on
as
a
different
user.
With
the
the
relevant
level,
but
instead
we
can,
we
can
actually
impersonate
that
user.
So,
on
our
project
information
we
want
to
see
our
members
to
see
like
who
is.
It
is
a
member
of
our
our
project,
but
is
not
an
owner
or
a
maintainer.
D
So
we
have
approach,
so
this
person
is
a
reporter.
So
this
is
the
this
is.
If
you
are
a
reporter,
you
should
not
be
able
to
see
the
the
button
right
so
we're
going
to
import
impersonate.
The
the
user.
I
can't
quite
remember
how
to
do
this.
So
let's
try
and
look
it
up.
A
really
good
thing
of
working
with
gitlab
is
working
on
gitlab
is
you
can
usually
just
Google?
D
How
do
you
impersonate
a
user
and
you'll,
find
it
so,
but
I'm
pretty
sure
we
can
just
go
to
users
and
then
find
our
user
who's
a
mentor
who's
a
reporter.
C
C
D
D
Here
we
go
so
looking
at
the
user
profile.
We
can
impression
it
so
now
you
can
see
gitlab
as
if
you
are
signed
in
as
this
person,
so
we'll
go
back
to
gitlab
test
where
this
person
is
a
where
they
are
a
reporter.
D
So
you
can
still
see
add
a
schedule,
but
if
you
try
to
make
one
already
got
one
called
test.
D
Now
you'll
get
an
error
to
say
you
can't
actually
make
one
so
this
is.
This
is
fine,
because
this
is
our
our
minimum
viable
product.
Everything
works.
It's
just
not
it's
not
completed
yet.
So
this
is
one
of
the
things
we're
going
to
do.
To
make
sure
that
on-call
schedules
is
is
is
is
better,
so
what
we
need
to
do
is
work
out.
D
Firstly,
what
level
of
so
we
we
need
to
work
out
a
few
things
right,
so
we
can.
We
should
be
able
to
work
out
who
is
logged
in
and
what
is
their
user
level.
D
So
what
I
had
tried
to
do
was
I
thought
we
could
get
this
in
the
front
end,
but
it's
not
how
we
do
things
at
kidlab.
So
I
asked
on
the
T
on
the
issue
you
can
see
here.
D
D
So
most
projects
won't
have
it
on
call
schedule
already.
So
if
we
look
at
the
different
one
without
an
on-call
schedule,
we
can
see
a
different
message
that
says:
there's
no
Uncle
schedule.
Do
you
want
to
make
one
and
we
need
to
change
the
text
here
so
that
it
says,
like
you,
can
create
an
obstacle
schedule,
but
you
have
to
be
a
maintainer.
D
So
again
we
need
to
work
out
if
if
the
user
is
developed,
so
here
what
I've
done
is
I
asked
this
question
to
the
product
designer
and
also
the
the
product,
the
product
manager
and-
and
we've
got
our
answers
here
here.
D
The
a
technical
writer
in
my
team
was
tagged
to
to
ask
them
to
to
write
this
description
and
you
can
see
like
you
can
see
all
of
this
as
a
as
a
user
and
as
a
contributor,
you
can
also
feel
free
to
ask
questions
like
this.
D
If
you're
ever
not
sure
who
to
ask
you,
can
you
can
look
that
up
so
monitor
respond?
Is
this
group
and
you
can
see
in
the
ticket?
Sorry
the
issue
you
can
see
this
team?
Is
a
group
respond
so
we're
in
the
respond
team
to
respond
gitlab
and
then
we
can
see
like
who?
Who
is
the
who's
in
this
team?.
D
D
So
if
we
look
for
members
team
members,
you
can
see
a
description
here,
see
myself.
What
we're
looking
for
is
the
product
manager.
D
Usually
in
this
case,
is
it's
a
more
general
question,
so
we
can
ask
the
product
manager
Alana
and
if
it
was
a
front-end
specific
question,
you
could
ask
myself
or
Tristan
and
back
in
so
this
is
how
you'd
find
this
information,
and
this
is
how
I
would
find
this
I
find
this
information
as
someone
who's
new
to
gitlab.
D
This
is
how
you
ask
Okay.
So
the
next
question
was
I
asked
Tristan
who's
the
the
senior
front
end
on
this
team.
How
do
we
do
this?
I
did
ask
him
on
slack,
but
I
could
have
and
should
have
asked
directly
in
the
issue.
D
How
does
this
work
I'm
a
little
bit
lost,
and
this
is
the
same
capacity
that
you
have
as
a
contributor
to
ask.
So,
if
you're
unsure
about
something
you
can
tag
someone
and
ask
okay,
so
essentially
what
Tristan
is
saying
here
is
usually
we
would
try
to
keep
all
of
the
permission
stuff
in
one
place.
This
means
it's
on
the
back
end
and
you
can
already
see
the
API
rejects
the
request
when
you're
making
it
with
the
wrong
permission.
D
You
can
read
this,
but
essentially
what's
happening.
Is
we
need
to
ask
the
back
end?
Is
this
user
able
to
make
edits
instead
of
in
the
front
end
checking?
Are
they
a
maintainer?
Are
they
a
developer?
Are
they
a
reporter?
Okay?
If
they
are?
What
is
the
permission
level
instead
of
doing
that
in
the
front
end?
We
rather
do
that
in
the
back
end.
So
what
we're
actually
asking
is:
can
this
user
Make
edits
and
then
that
logic
will
sit
in
the
back
end,
so
this
is.
D
This
is
honestly
pretty
tricky
in
gitlab,
because
thank
you,
our
code
bases
is
very
large.
This
is
how
we
we
do
things.
So
what
we're
actually
going
to
have
to
do
is
look
at
the
Hamel
file
that
that
loads,
the
on-call
schedules
component
or
application.
Rather,
it's
an
entire
application.
D
Some
other
useful
things
here
is
here's
an
example
where
we
check
permissions.
So
this
is
super
useful
because
we're
going
to
look
at
where
else
in
gitlab
this
is
happening
and
and
how
this
works.
So
this
is
on
the
on
the
back
end,
so
this
is
on
on
Ruby.
So
if
we
have
problems,
we
can
ask
one
of
the
back-end
developers,
but
we
should
be
able
to
just
follow
the
instructions
here
so.
D
It's
usually,
we
have
a
helper
in
this
case
we
can
see
here
is
the
hell
bar,
and
this
is
where
it's
being
injected
into
the
the
front
end
environment
so
what's
happening
is
this
code
is
running
on
the
on
the
back
end
and
then
it's
choosing
which
application
to
run
and
then
it's
passing
that
application
some
additional
data.
So
in
this
case
it's
passing
environment
data.
C
D
D
So
this
is
like
pretty
confusing
and
pretty
gitlab
specific,
so
yeah
like
when,
whenever
you
come
across
things
like
this,
do
ask
for
help.
This
is
a
really
normal
unusual
thing,
and
this
is
something
that
gitlab
does
very
well
because
if
I
mean
particularly
with
different
time
zones,
if
you
ask
a
question,
people
will
come
back
to
you.
So
Tristan
is
in
New
Zealand.
D
So
you
can
ask
a
question
and
then
overnight,
if
you're
in
Europe
or
the
US,
oh
sorry
or
American
time,
zone
you'll
have
your
eyes
the
next
morning.
Probably
so,
let's
try
to
dive
into
actually
setting
this.
D
One
more
thing
he
said
if
I
want
I
can
make
the
helper
and
the
spec
changes
if
I
feel
comfortable.
Otherwise
I
can
get
the
support
of
a
back-end
engineer
and
to
get
that
support.
I
would
ask
in
this
issue
now
this
all
happened
a
month
ago,
because
it's
a
lower
priority,
so
yeah
just
in
case
you're
wondering
okay.
So
let's
actually
look
at
the
code
and
how
this
is
working
here.
So
on
our
on-call
schedule,
let's
have
a
look
at
one.
That's
actually
got
on
call
schedules.
C
D
D
And
then
work
out
like
what
is
the
name
of
this
application?
That's
running
because,
as
we
saw
last
time,
the
way
kidlab
works
is
each
of
these
is
a
separate
application.
So
this
is
a
View
application.
This
top
nav
bar.
This
is
a
View
application
and
this
is
our
actual
on-call
schedule.
So
the
component
that's
being
run
here
is
Uncle
schedules
wrapper.
D
So
if
we
look
for
this,
I'll
create
a
new
Branch
to
start
with,
so
I
don't
forget.
D
D
So
here
we're
just
calling
the
branch,
the
ID,
sorry,
the
issue.
D
If
you
have
any
questions,
please
feel
free
to
jump
in
at
any
time.
D
So
this
is
where
our
View
application
is
actually
being
loaded.
D
So
we
can
see
here
that
this
is
the
view
application
that's
being
imported,
and
then
this
is
the
important
things
that
we're
looking
at
this
is
this
the
things
that
are
passed
to
The
View
application
from
from
our
backend
from
Ruby
from
Hamel.
So
when
this
is
when
this
is
being
loaded,
these
are
the
the
variables
that
are
being
passed
it.
D
So
what
we
need
is
an
additional
variable
to
say:
is
this
user
able
to
make
changes
to
the
on-call
schedule,
so
I
think
it'll,
actually
just
before
can
edit.
D
D
We
can
read
that
information,
so
so
the
first
thing
we
want
to
do
is
like
we
want
to
have
a
look
at
the
Hamel
file
that
reads
this
index.js
on
call
schedules,
so
you
can
like
if
a
file
is
going
to
import
this
Javascript
file,
it
needs
to
give
the
the
address
of
it
oops
oops.
So
we
can
just
do
a
global
search
for
on-call
schedules
index
and
then
we
should
be
able
to
find
the
file.
That's
actually
like
reading
this.
D
Maybe
it
doesn't
use
index.js
because
it
because
if
it's
called
index.js
often
a
compiler
won't
actually
need
you
to
say
index.js,
so
it'll
be
coming
from
javascripts.
C
D
Cool
okay.
So
now
we
have
the
like.
This
is
the
Hamel
file.
That's
actually
yeah
passing
the
data
to
our
on-call
schedule,
so
yeah
this
I
I,
actually
don't
know
how
to
find
so.
I'm
gonna
talk
you
through
my
my
logic,
but
please
jump
in
if
you
have
a
better
idea
yeah.
So
if,
if
the
data
is
called
on
call
scheduled
data,
then
this
has
to
be
set
somewhere
right.
So
so
it's
passing
Everything
at
Once.
It's
not
individualizing
these
things.
D
So
all
of
these
must
be
part
of
this
on-call
schedule,
the
data
project.
So
what
we're
looking
for
is
like
what
is
this,
so
this
is
probably
it
here.
E
D
D
I'm
gonna
ask
one
of
the
back-end
Developers
for
help
on
this
part,
because
I've
never
used
Ruby
and
I
didn't
realize
there'd
be
so
much
back
end
in
this
front.
End
demonstration,
so
I'm
going
to
show
you
what
I'll
do
as
a
front-end
developer,
which
is
ask
someone
else
for
help,
but
in
the
meantime
we
can.
We
can
do
the
front
end
code
so
that,
like
everything,
is
ready
for
when
that
is
updated.
E
F
C
F
C
B
E
So
I
guess
that's
gonna,
be
a
policy
for
to
know
how
the
how
can
I
say
it
to
know
if
if
the
user
can
or
cannot
actually
create
the
schedule,
that's
and
that's
basically
what
it's
gonna
check
when,
on
the
back
end,
when
you
create
click
on
the
create
and
Returns
the
error,
so
we
could
try
to
look
for
what
that
policy
actually
is.
Then
it's
going
to
be
quite
straightforward
to
expose
it
to
the
front
end.
B
E
E
G
Have
another
question
yeah
in
the
middle
time?
What
so?
How
would
I
can
do
this
question?
Okay,
what
I'm
see
that
we
just
need
to
do
one
request
to
that
end
point
and
we
need
to
retrieve
all
the
information
necessary
to
render
that
page.
That's
it
because
my
doubt
is.
We
cannot
do
a
second
request
just
to
see
if
the
user
can
or
not
edit,
that
page
or
this
is
not
the
architecture
of
the
gitlab.
D
Yeah,
that's
right,
so
my
understanding
is
Maybe
I'm
Wrong.
Maybe
it's
a
better
idea
of
Market,
but
my
understanding
is
because
the
on-call
schedule
Helper
because
it's
in
Ruby
like
it,
has
to
happen
on
the
server
right,
yeah.
E
D
D
E
It
depends
on
what
you
actually
want
to
do,
because
that
button
is
always
present
on
the
page
and
actually
depend
on
the
permissions
of
that
that
that
user
has
on
the
project.
So
basically,
when
the
hammer
loads,
it's
like
a
PHP
file,
that's
gonna
load,
everything
and
inject
all
the
data
on
on
the
front
end
JavaScript,
so
you
don't
have
to
fetch
it
again.
E
But,
for
example,
if
you
have
a
table,
for
example,
and
each
entry
could
have
different
permissions
in
that
instance,
when
you
do
the
actual
query
on
the
backend,
for
example,
using
Apollo,
you
get
the
data
set
of
the
results.
E
Each
row
could
also
include
the
information
about
if
the
current
user
can
actually
do
some
actions.
E
D
E
D
Yeah,
because
this
was
my
thought
as
well:
oh
okay,
I'll
make
another
call
to
some
API
and
to
say:
can
this
user
like?
What
can
this?
What
who
is
this
user
but
yeah?
This
is
far
more
efficient,
effective
because
we're
just
making
it
wonderful,
okay,
so
I'll
start
working
on
front
end
and
then
Margaret
and
have
a
look
at
the
back
end
stuff.
So
what
I'm
doing
is
I'm
going
to
assume
that
we
do
get
can
edit
and
can
edit
is
false,
so
I'm
going
to
assume
it's
false.
D
So
then
we
can
provide
it
still
from
here
to
our
View
application
and
then
once
we're
sorted
out
our
backend
stuff,
then
we'll
be
able
to
get
from
the
actual
packet
okay.
So
now
we
want
to
go
back
to
our
on-call
schedule.
D
So
this
is
our
entire
application,
and
you
can
see
here
we
get
this
inject.
So
inject
is
so
these
things
something
like
empty
on-call
schedules.
Svg
path
is
coming
from
here,
so
what
we
provide,
we
can
also
inject.
D
D
So
we're
providing
user
can
edit
and
we're
setting
it
to
false
for
the
moment,
but
eventually
we'll
be
able
to
get
back
end.
So
now
what
we
want
to
do
is
we
want
to
take
this
information
and
we
want
to
conditionally
render
those
buttons
right.
So
how
do
we
read
what
we're
injecting?
Let's
take
this
as
an
example,
we
can
look
for
it
in
the
page
and
you
can
actually
just
use
it
as
a
very
as
a
as
a
variable
as
a
prop.
D
D
It's
just
gr
button
and
here
are
the
details
or
you
could,
if
you're
in
a
hurry,
you
can
just
inspect
it
and
look
for
something
like
data
data
test.
Id
like
this
is
going
to
be
a
really
good
indicator
of
what
exactly
the
button
is.
D
C
D
Like
if,
if
user
can
edit,
it's
true,
then
display
this
button
or
this
component?
If
it's
not
don't
so
already,
we
yeah,
but
we
have
it
working
right.
So
at
least
the
on-call
schedule,
straightforward.
D
Let's
see
what
else
so
create
schedule
should
be
hidden,
add
rotation
should
be
heading
and.
D
Sorry
hide
the
create
schedule,
button
and
edit
buttons
for
developers
and
below,
and
they
were
saying
again
that's
okay
on
an
empty
state
right,
okay,
cool!
So
this
one
we're
good
we're
done
next
thing
we
want
to
hide
is
the
add
rotation.
D
So
Opticians
had
a
and
then
yeah
you
can
also
look
for
this
class
like
this
class
is
going
to
be.
You
know,
that's
not
going
to
work
some
of
our
classes
like
combine,
so
you
can
have
one
class
that
will
combine
a
few
classes.
So
that's
not
clever
either.
G
B
B
D
Okay,
interesting,
so
we
can
actually
just
write
the
component,
so
we
get
the
on-call
schedule.
G
D
And
it's
probably
in
here
because
what's
happening
is
it's
it's
rendering
three
on
call
schedules,
yes
and
then
in
the
on-call
schedule,
where
doing
the
rotation.
G
D
C
D
B
E
Yeah
I
posted
on
the
chat,
so
you
could
try
to
add
that
line
on
the
return
values
and
we
should
have
the
current
user
available.
So
it
should
work.
Okay,.
E
Basically,
a
current
user
is
actually
the
user
entity
that
actually
logged
in
so
the
current
user
Ampersand
checks.
If
the
current
user
is
different
than
Neil,
then
it's
going
to
continue.
Otherwise,
it's
gonna,
basically
return
nil
and
can
question
mark
is
actually
used
to
check
if
an
entity
has
some
permissions
on
another
entity.
For
example.
E
E
Yeah
that
one
yeah,
basically
this
is
the
project
policy.
The
other
B
file
has
contains
basically
all
the
information
about
what
an
user
can
actually
do
on
a
project
and
based
on
a
set
of
rules.
You
can
enable
or
disable
some
features
or
permissions,
and
that
is
basically
is
simply
the
unique
name
of
the
permission
so
yeah,
and
here
we
can
see
that
the
rule
is
if
the
Hong
Kong
schedule
is
actually
available
and
the
user
has
a
maintainer
access,
then
that
feature
is
going
to
be
enabled.
C
E
D
Great
easy
thanks
all
right,
so
so
now
we
can,
and
now
we
have
our
can
create
schedule.
So
I
can
name
this
whatever
I
want
right.
I
can
find
this
here.
D
Name:
yeah,
it's
good!
So
then,
when
so
now
we
should
be
able
to
get
this
from
the
data
set.
So
then,
let's
change
it
to
more
casing.
D
So
user
can
create
schedule,
that's
better
than
user
can
edit.
So
so
now
again
again,
access
in
our
on-call
schedule
wrapper
instead
of
injecting
user,
can.
B
D
And
then,
instead
of
user
can
edit
it
will
use
a
can
create
schedule.
So
then
we
also
we
need
to
pass
this
information
to
the
on-call
schedule
where
it's
going
to
be
read
for
the
the
other,
for
the
add
a
rotation
button,
so
we
can
do
that
as
well.
E
Duration
has
a
different
ID
for
the
policy.
Actually,
oh.
B
E
E
Oh,
no,
maybe
not
I
confused
it
with
because
there's
a
Paul
there's
a
permission
called
admin,
Incident
Management
and
scholarship
policy.
But
I
guess
that's
not.
It.
D
E
D
Rotation
will
just
be
like
one
of
the
so
in
each
phone
call
schedule
you
have
different
rotations,
so
this
schedule
has
four
rotations.
This
one
will
have.
G
E
But
usually
the
permission
is
called
admin.
It's
used
to
both
to
all
the
crowd,
operation,
create,
update
or
delete,
and
up
and
yeah
so
yeah.
That
might
actually
be
a
higher
level
permission.
But
it's
the
only
one
available.
D
But
yeah
you
make
the
point
we
and
we
we
can
ask
in
the
issue,
if
we're
not
sure.
C
B
C
D
Let's
see
so,
then
we
already
have.
If
user
can
create
schedule,
this
should
should
work.
Okay,
cool,
so
we
don't
have
user
can
create
schedule,
and
now
it's
connected
to
the
back
end
as
well,
which
you'll
be
able
to
stop
impersonating,
we'll
go
back
to
our
administrative
user
and
we
should
be
able
to
see
the
buttons
there,
but
in
the
merge
request,
I
want
to
have
a
screenshot
to
show
that
it
is
actually
working.
G
F
E
E
Oh
because
I
only
thought
that
the
button
on
the
top
right
corner
was
the
one
that
we
should
hide.
Not
the
other
rotation.
I
didn't
see
that
all.
F
D
Here
we
can
see
the
the
props
it
gets
so
on
the
on-call
schedule
itself,
we
should
be
able
to
see
its
prompts.
D
So
it's
come
true
to
prob
and
then
this
should
be
being
injected
user
can
create
schedule.
It's
passing
out
an
empty
string.
So
that's
funny
because
you
would
think
if
it's
passing
an
empty
string
to
as
a
prop,
then
that
should
also
be
false,
but
I
just
did
remember.
Tristan
did
make
a
comment
about
booleans
being
passed.
D
D
D
E
B
D
Let's,
let's
copy
Tristan's
example
since.
G
D
No
problem,
no
problem,
all
right
cool,
so
then
we
can
say:
can
current
user
yeah
like
this.
D
Let's
see
all
right
cool,
so
we're
converting
it
to
a
string
here
and
then
in
the
example
that
was
posted.
We
need
to
and
checked
it
yeah.
That's
already
done.
E
D
C
Oh
because
it's
yeah.
E
D
D
Yeah
Okay
cool,
so
it
can't
find
this
common
utils
because
I
just
copied
it
from
the
example.
So
one
way
to
fix
this:
where
is
our
example?
So
there's
a
couple
ways
to
fix
it?
One
I
can
find
the
path
or
we
can
use
the
you
know
until
the
see
how.
E
D
An
example
we
have
this
I,
don't
know
what
you
told
us.
B
D
So
if
we
just
do
a
search
for
it,
maybe
it's
used
in
more
than
one
place
in
one
of
these
places.
There
we
go
he's
using
the
the
shortcut,
and
so
this
is
the
quick
easy
way
to
do
this,
because.
B
D
C
D
Be
able
to
see
the
the
injected.
D
User
can
create
schedule
as
an
actual
volume.
So
now
it's
true
okay.
So
now
it's
true
for
the
administrator
we're
going
to
take
another
screenshot,
so
we
don't
have
to
come
back.
D
We
did
it
thanks.
Okay,
so
next
thing
we
want
to
do
is
change
the
text
when
it
is
when
there's
no
on-call
schedule,
so
I'll
take
a
screenshot
here.
D
Okay
and
then
so
when
I
have
a
look
at
a
different
project
that
does
not
have
a
on-call
schedule.
D
D
You
can
find
the
instructions
by
by
Googling
it,
but
it
also
should
stay
in
the
issue
itself
that
this
requires
a
feature
flag,
yeah
good,
to
know
anyway,
Okay
cool.
So
we
want
to
remove
this
button
and
we
also
want
to
change
the
text
here.
C
D
B
D
The
same
body
would
change,
and
the
button
should
be
here,
so
we
start
by
hiding
the
button,
so
this
will
again
be
in
the
it
should
be
in
the
wrapper
I.
D
D
Okay
and
then
we
also
want
to
change
the
description,
so
here
I'm,
not
sure.
If
there's
a
better
way,
we
can
do
it.
It
probably
is
so
I
mean
we
can.
We
can
just
say
like
make
a
ternary
operator,
but
it's
going
to
be
a
bit
long
for
this.
This
it's
going
to
be
a
bit
messy,
so
we're
going
to
put
it
into
who
computed
prop.
That
would
be
better,
so
this
would
be
like
empty
state.
D
Description
like
this
is
a
bit
on
feel
you
know
like.
If
it
feels
a
bit
much
then
then
change
it.
It
will
like,
when
you
submit
for
a
code
review.
You
have
to
go
through
two
code
reviews
and
someone
will
probably
fix
it
or
tell
you
to
fix
it
if
they
think
so,
like
the
best
way
to
learn
this,
you
know,
should
you
do
it
or
not?
Is
just
practice?
Don't
worry
about
it
too
much.
D
If
people
keep
correcting
you
or
as
soon
as
somebody
corrects
you,
then
you
can
remember
for
next
time,
particularly
when
I
started.
I
kept
a
list
to
every
question
that
I
asked
I
wrote
down
the
answer
and
then
I
made
sure
not
to
ask
that
question
again.
D
It
makes
people
way
friendlier
if
you
ask
them
a
different
question,
particularly
if
you
can
say
like
I
I
have
a
similar
problem.
I
followed
what
you
said
last
time.
This
is
what
you
said
last
time.
What
do
I
do
this
time?
They
really
like
that.
Okay,
so
empty
State
description
is
what
we
need
to
create.
E
G
D
So
this
is
the
translate.
I-18N
is
the
translate
tool,
so
what
it
does
is
it
stores
all
of
our
translations
in
here
all
of
our
text
in
here
really
so
then
it
can
easily
change
on
on
different
languages.
D
So
it's
it's
probably
only
going
to
be
run
in
English
at
the
moment,
but
you
know
we
can
so
it's
only
got
English
here,
but
if
we
wanted
to
add
a
secondary,
a
new,
a
different
language,
we
we
certainly
can
okay.
So
we
have
empty
State
description
and
then
we
want
to
add
like
so.
We
want
to
have
have
a
different
one
and
we
need
to
come
up
with
a
name
for
this.
D
So
it'd
be
like
like
empty
State
description
for
creating
or
empty
State
description
to,
say
you
can't
you
can't
create.
Now
we
can
look
at
what's
actually
in
the
text.
Maybe
that
will
give
us
a
clue
as
to
what
we
can
name
it
otherwise
open
for
your
suggestions.
D
D
D
Hi
Nita
American,
spelling,
I,
guess
yeah.
It
does
need
to
be
American,
spelling,
I
yeah.
This
is
something
I
I
get
caught
up
a
lot
in
so
I
put
a
spell
check,
yeah,
and
so
you
can
see
all
these
are
just
coming
from
the
spell
check,
extension,
okay,
good
and
yeah.
It
should
be
American.
D
I
mean
this
is
one
of
the
reasons
why
I
have
it?
The
other
reason
is
I've
just
suck
at
spelling,
I
think
unauthorized.
One
word
should
also
be
yeah
cool.
So
now
we
have
oh.
Where
are
we
so
in
our
computed
empty
State
description
we
want
to
have?
Can
the
user
create
a
schedule,
vs
description
if
no
unauthorized
description,
and
then
that
should
be
all
we
need
to
do?
Do
we
already
hide
the
button?
D
So
the
button
only
appears
if
the
user
can
create
schedule.
The
description
changes
on
based
on
if,
if
the
user
can
create
a
schedule
or
not
so
that
should
work.
Let's
see.
C
D
Okay,
that's
one!
We
have
a
problem
so
use
it's
not
defined
because
I
didn't
say
this
so
in
the
computer
section,
because
we're
accessing
the
local
very
well
like
it's
being
injected.
This
should
be
this.
C
D
D
It
yep,
so
why
is
options
not
to
find
out
again
because
it
needs
to
say
this
yeah.
F
D
C
F
G
Okay,
it's
okay!
Okay,
there.
D
You
go
Okay
cool,
so
what
we
need
to
do
is
we
need
to
invite
and
then
back
and
then
impersonate
them
so
I
have
a
member
set
up
as
reporter.
D
Who
I
can
assign
as
a
role
reporter
so
I
made
this
user?
If
this
is
a
good
idea,
if
you're
using
this
a
lot,
you
can
create
users
like
developer
for
developer.
That's
great!
It's
a
good
tip:
okay,
they're,
a
reporter
okay!
So
now
we
want
to
impersonate.
D
D
D
It
has
members
already
so
like
I
want
to
know
where,
which
component
is
getting
this
information
and
how
it's
probably
going
to
be
a
like
a
graphql
query,
which
isn't
quite
what
we
want
because
of
the
same
problem.
We
said
before,
what
we
don't
want
is
to
render
the
app
and
then
the
app
make
a
query
that
it
doesn't
need
to
make,
because
this
is
information
that
doesn't
change
so
it
should
be.
D
It
should
be
asked
when
the
page
is
loaded
yep.
So
this
isn't
quite
right,
but
let's
have
a
look
back
at
our
code.
So
when
we
have
our
helper,
we
have
the
project
path.
D
Yeah,
we
can
also
do
here.
Get
lab
project
object
details,
it's
a
bit
of
a
long
shot,
but
I
reckon
can
find
it.
Foreign.
D
D
G
Server
I,
don't
remember
yeah.
C
D
Have
a
look
at
the
cheat
sheet
because
I
always
forget
how
to
use
it
so
to
open
rails.
D
I
could
never
remember
the
what
it
is
so
I
I
set
a
shortcut
to
I
think
it's
rails
console.
G
D
B
D
Find
the
answer
and
I'll
comment
on
the
on
the
YouTube
video,
because
I
can't
remember
what
it
is.
So
what
we
can
do
is
something
like
like
beautiful
and
Royals
console
project.
C
B
C
D
Gitlab
instance,
so
maybe
we
can
just
do.
F
D
F
D
D
Again,
if
you
look
for
a
kitlab
way
to
do
it,
you
can
probably
find
this
specific
way
because
gitlab
is
so
used.
B
C
F
D
Cool,
so
we
make
the
we
make
description,
unauthorized
description,
a
function,
yeah
we'll
give
it
a
variable,
and
then
we
pass
this
variable
in.
C
C
C
D
So
then,
this
needs
to
be
oh
and
that's
going
to
be
a
link
to
their
gitlab
profile,
which
is
going
to
be
extra
information.
Okay,
it's
fine.
B
C
F
B
G
And
and
I
think
you
should,
as
you
change
the
name,
I
think
you
should
change
the
last
parameter
of
in
the
translation
in
the
end
function
function
at
the
end,
because
you
need
pass
as.
C
C
G
You
have
the
capability
to
do
this.
It's
possible
in
one
merge
request:
do
the
things
in
the
back
end
in
the
front
end,
or
we
need
to
separate
this
in
different
measure
requests
or
in
different
commits?
How
is
the
the
better
way
to
to
approach
this.
D
B
D
Seen
a
bunch
of
them
that
are
so
if
I
get
tagged
in
a
merge
request,
for
example,
and
so
if,
if
I
get
tagged
in
a
merge
request
to
review
it,
it
might
also.
If
there
are
changes
to
the
back
end,
it
will
trigger
a
I,
see
okay
review
as
well.
So
when
we
create
the
merge
request,
it'll
say:
Hey,
you
need
a
back-end
review
and
you
need
a
front
entry.
D
Okay,
so
we've
got
the
name
of
the
that's
good.
D
At
least
like
the
the
project
came
through,
so
that's
cool
I
didn't
expect
that
to
work.
D
F
F
G
D
No
problem:
we
can
also
look
at
the
Locale
here.
Yeah
foreign.
C
G
Sense
start
pipeline
body
and.
B
F
C
C
F
D
G
G
D
E
C
B
G
Okay,
May.
C
F
D
B
G
Hey
you
can
do
that
as
we
have
the
the
variable
in
this
scope
and
we
have
the
string
we
need
to
handle.
We
just
use
this
interpolation
beside
the
because
the
name
is
the
same
in
any
language.
So
we
need
we
can
put
this.
We
can
transform
this
string,
the
line
31
in
a
template
string
and
we
can
use
the
inter
string
interpolation,
though,
because
the
name
is
is
the
same.
C
C
B
F
C
G
At
the
line
124,
oh
no,
no,
on
24.
B
G
F
C
D
G
D
G
F
G
G
C
G
C
C
D
D
So
if
we
look
for
this
odd
thing,
then
we
should
be
able
to
get.
We
should
be
able
to
find
like
what
are
the
details
of
a
gitlab
user.
That's
what
I
really
want
to
know.
D
No
okay
link
just
guess.
G
G
List
of
methods
you
can
do
the
dot
methods
and
you
can
see
all
the
methods.
G
D
Let's
see
okay,
so
maybe
here
it'll
call
it
by
the
same
name,
because
you
have
like
the.
C
C
C
G
D
So
where
is
the
avatar
coming
from?
And
this
is
going
to
come
from
the
graphql
because
it's
so
it's
coming
from
graphql,
because
it's
an
interactive
table
and
it's
not
going
to
be
information.
That's
there
from
from
the
start
of
loading.
The
page.
D
G
G
B
D
I
I
think
actually
we
could
probably
just
send
it
to
like,
like
make
the
the
link
to
the
username
yeah,
because
I'm
pretty
sure
that's
going
to
work
anyway,
because
if
you
just
go
to
life.
C
D
Yeah,
let's
do
that
get
it
done.
Okay,.
D
Project
owner
do
we
want
the
same
person,
so
we
could
say
project
owners
and
we're
going
to
give
it
just
the
first
one,
because
it
doesn't
matter,
but
they
didn't
specify
which
one
and
we
can
also
ask
on
the
ticket
like
okay,.
G
D
The
URL
and
then
I
think
it
would
probably
be
like
name
right
for
the
full
name.
F
B
B
A
B
D
D
Cool
so
yeah,
the
I
think
this
is
the
last
task
to
do
here.
Right
is.
F
G
G
And
then
you
need
to
make
a
test
uniter
units
test
for
for
this,
this
measure
request
is
a
mandatory
how
or
need
to
change
how
do
tackle
this
after
before
or
do
the
magic
Quest.
D
Yeah,
that's
a
good
question.
So
so,
oh
sorry,
so
let's,
let's
Commit
This,
okay.
D
G
Mass
request:
did
you
do
the
the
the
unit
test,
or
this
depends.
D
But
when
you
create
the
merge
requests,
so
in
this
case
we'll
we
can
rename
the
commit
later.
So
we
can.
D
Can
just
call
it
hide.
G
Add
edit.
C
D
C
B
G
B
G
D
Yeah,
so
what
I
wanted
to
show
you
was
in
the
merge
request.
It
will
show
clearly
that
some
things
are
not
covered
by
tests.
I
mean
reasonably
clearly
still
something
I'm.
C
D
That
must
be
when
you
actually
create
it.
I'll
show
you
an
example.
D
D
So
yeah
I
think
what
it
will
do
is
say,
like
you
know,
is
this
function?
Is
there
a
function?
That's
testing
this
specifically
sorry.
Is
there
a
test,
that's
testing.
This
function.
D
It's
there
is
a
screen
if
it's
not
it's
red
and
then,
if
it's
red,
it's
going
to
be
pushed
back
to
be
like
hey,
this
isn't
tested
and
we
always
write
tests
with
the
with
the
merge
requests,
even
if
they're
like
yeah
like
it
needs
to
be
tested
and
and
if
you're
not
sure
you
can
always
just
create
a
merge
request
and
you'll
get
push
back
like
someone,
the
reviewer
will
say,
please
add
tests
and
if
you're
really
not
sure
something
I
learned
this
week
was
I
was
having
difficulties.
D
Writing
this
test
and
I.
You
know,
I
didn't
know
how
to
test
the
Apollo.
G
F
D
Tag
the
subject
matter
expert,
so
gitlab.
D
And
they're,
like
listed
this.
C
G
G
F
D
Strange
I
don't
know
how
to
find
it
so
again,
I'll
I'll
find
it
and
update.
C
D
If
you
like,
if
you
wrote
something
and
I
was
that
person
you
can
right?
Okay,
you
can
tag
me
and
say:
can
you
do
an
early
review.
G
D
Well,
like
the
more
descriptive
you
can
be
the
better
answer:
you're
gonna
get
okay.
G
G
D
Yeah
so
I
guess
we
can
just
keep
this
the
next
time.
We
do
it
because
it
would
be
useful
to
see
like
how
we
fix
this
problem
and
then
also
like
how
we
write
the
merge
requests.
G
F
G
You
you
finished
with
my
question.
There
is
that's
part
of
magic
quest,
okay,
but
for
me
it
is
good,
great
I'm
learning
a
lot
with
you,
yep
yep,
yep,
yep
and
I
I'm
heading
for
the
the
hackathon
I
will
participate
the
hackathon.
So
this
is
helping
me
yeah.
That's.
D
It
as
well,
it's
yeah
helping
me
get
through
my
tasks
as
well
and
getting
help
from
you
guys.
No.