►
From YouTube: Pipeline validation in GitLab's pipeline editor
Description
Nadia, Senior Product Designer at Verify:Pipeline Authoring meets with Michael, Developer Evangelist at GitLab to talk about pipeline validation in the pipeline editor and opportunities for improvement around pipeline optimization and testing.
A
Yeah,
so
I'm
here
with
michael
our
developer
evangelist
and
we're
going
to
talk
a
little
bit
about
the
pipeline.
Editor
linting
testing
your
pipeline,
all
of
that
good
stuff.
So
currently,
in
the
standalone
c
island,
we
have
an
option
to
simulate
your
pipeline.
It's
it's
a
bit
of
a
weird
user
experience,
there's
just
a
checkbox
that
you
check
off
and
it
doesn't
really
tell
you
exactly
what
it
does,
but
it
adds
some
additional
checks
on
top
of
the
basic
linking
it
doesn't
necessarily
simulate
your
pipeline.
A
A
So
basically
we
want
to
build
upon
it
and
we
want
to
allow
you
to
test
your
pipeline
on
different
branches
and
following
different
trigger
events
like
whether
it's
a
scheduled
pipeline
or
it's
a
merge
request
pipeline.
Your
pipeline
might
look
differently
and
the
current
implementation
evaluates
some
logic.
So
it's
not
just
syntax
validation,
but
it
also
evaluates
things
like
rules
and
exceptions,
and
things
like
that.
A
So
we
want
to
build
upon
it,
but
before
we
add
it
to
the
pipeline
editor,
I'm
trying
to
gather
more
insights
generally
around
how
the
linter
and
the
existing
validation
features
in
the
pipeline.
Editor
are
used
and
since
you
interact
a
lot
with
engineers
who
are
just
learning
getting
started
with
ci
cd
and
you
use
the
pipeline
editor
in
your
workshops-
and
things
like
that,
I
was
wondering
if
you
could
share
some
some
insights
and
just
your
experience
around
how
you
use
the
linter,
because
we
have
a
continuous
validation
in
the
pipeline.
A
Editor
there's
this
status
area,
where
we
tell
you
the
syntax,
is
correct
or
not,
and
we
show
some
basic
errors
there,
but
you
can
also
click
through
into
the
lint
tab
in
the
pipeline
editor
that
provides
some
additional
output.
So
yeah,
I
was
wondering
if
you
could
share
a
little
bit.
What
is
your
experience
with
using
that?
What
what
are
the
benefits
for
you
of
seeing
that
output?
How
can
it
be
improved?
And
so
on.
B
Yeah,
the
reason
why
I
like
jumped
into
the
simulation
epic
was
that
I
felt
that
this
was
like
aiming
too
big
and
run
time.
Simulation
is
different
to
like
you
are
analyzing
the
rules
and
generating
the
output
or
generating
the
compiled
configuration,
which
is
then
sent
from
the
server
to
the
runner
to
execute
oftentimes
you,
you
have
the
problem,
you're,
building
out
your
pipeline
and
it's
more
or
less
a
static
job
stages
environment.
B
But
in
the
end,
you
always
like
you
execute
something
you
download
something
your
provisions,
cloud
resources,
you
change
something
in
your
environment
of,
and
you
expect
it
to
to
behave
the
same.
So
everything
is
important
somehow,
for
example,
when
you
use
terraform
and
the
state
backend
and
everything
else,
but
it
gets
more
complicated
to
actually
test
and
simulate
that
so
like
getting
stepping
stepping
back
and
say,
okay,
I
cannot
really
simulate
a
runtime
environment
right
now.
This
is
like
what
staging
is
for
and
you
actually
need
to
run
the
pipeline.
B
But
what
what
is
interesting
for
me?
I
don't
want
to
run
the
pipeline,
yet
I
want
to
see
what
I'm
building
so
like
have
a
visual
builder,
something
like
I'm
writing
the
yammer
code.
B
I
can
see
a
preview
how
the
stages
and
the
jobs
look
like,
so
I
think
that's
in
the
there
are
too
many
tabs
to
be
honest,
that's
in
the
visualize
type
and
like
when,
when
we
are
in
the
test
tab
on
the
linting
tab,
I'm
primarily
interested
in
getting
the
green
feedback
or
getting
the
feedback
that
the
syntax
is
correct,
and
sometimes
it's
like.
B
I
made
a
mistake
and
the
the
editor
is
intelligent
enough
to
tell
me
hopefully
that
there
might
be
like
in
this
scope,
I'm
not
allowed
to
use
script
or
I'm
missing
script
or
the
the
job
name
is
not
allowed
because
it's
a
keyword
or
something
like
that,
so
everything
like
the
the
config
parser
can
can
give
us
as
a
result.
B
It's
it's
amazing.
When
I
see
when
I
type
it
live
in
the
editor,
but
on
the
other
hand,
oftentimes
you
copy
something
from
a
blog
post
from
somewhere
else,
and
it's
not
like.
I
continuously
write
in
the
pipeline
editor.
I'm
like
I'm
copy
pasting
this
and
I
have
found
like
this
command
and
then
I'm
forgetting
about
the
indent
so
like
two
spaces,
and
I
think
we
when
we
we
had
been
working
with
the
helm,
bridge
history
and
the
pa
and
the
terraform
registry.
B
Lately,
I
think
philip
copied
something
from
from
a
different
environment
and
for
some
reason
this
didn't
work.
I
think
it
was
something
related
to
the
job
name
or
some
or
something
else
and
from
running
the
pipeline.
It
was
not
yet
clear
what
does
this
mean
and
when
we
moved
it
basically
into
the
pipeline,
editor
view
and
convince
philip
to
actually
try
it
out
now
and
see
what
is
going?
B
It's
much
more
approachable
because
you
see
the
linting
preview
you're
looking
at
the
error
and
it
might
not
be
perfect,
so
the
config
parser
can
still
be
improved
in
certain
ways.
B
Different
story,
because
this
is
a
complex
problem,
actually
write
a
config
pass
and
develop
a
dsl.
But
in
the
end
you
feel
confident
in
seeing
something
you
can
switch
the
top
and
edit
in
edit
mode
fix
it,
commit
it
you're
waiting
for
the
pipeline
at
the
top
to
to
continue.
I
think
this
could
be
made
more
like
when
the
pipeline
is
running
and
you're
waiting
for
feedback,
maybe
make
this
more
prominent.
I
think
users
might
not
see
that
this
is
actually
running
so,
like
I
don't
know
it
it's
there.
B
I
I
can
see
it,
but
I
maybe
when
I'm
committing
something,
should
I
don't
know
more
more
prominent
pop-up
was
just
saying:
okay,
the
pipeline
is
running
now
we
are
we're
actually
running
your
code,
you
just
committed,
and
then
you
can
continue.
B
Sometimes
it's
also
the
the
workflow
okay,
I've
I'm
done
in
the
pipeline
editor
and
the
department
is
running
and
I'm
not
interested
anymore
in
like
edit
adding
something
because
I'm
waiting
for
feedback.
So
what
what
should
I
be
doing
in
that
break
like
the
the
xkcd
303
compiling
joke?
Somehow,
but
maybe
there
is
like
filling
filling
the
the
gap
of
I'm
waiting
for
pipeline
feedback
and
now
I'm
in
the
scope
of
the
public
editor.
What
else
can
the
user
do
in
the
meantime,.
B
Like
providing
some
real-life
feedback
of
not
only
the
pipeline
is
running,
but
where
are
we
at
in
the
pipeline?
This
is
like
this
is
a
public
problem
type
line,
execution
teams
authority
actually
like
bringing
I'm
dreaming.
It's
like
a
waterfall
model,
a
waterfall
stream
of
stages
and
basically
it's
moving,
and
I
can
see
immediately.
B
I
feel
like
I'm.
I
don't
like
waiting
and
I
think
nobody
else
likes
to
do
that.
But
when
I,
when
I'm
waiting,
I
might,
I
might
want
to
see
a
progress
bar
and
not
click
five
times
to
get
into
the
pipelines
view,
but
have
it
somehow
at
the
top.
As
like,
the
merge
trains
are
designed
or
to
be
designed
just
like
see
where
I'm
at
and
if,
for
example,
the
this
is
again
something
in
in
execution.
B
If
the
metric
goes
beyond,
for
example,
five
minute
duration,
it
gets
red
and
I
can
see
that-
and
maybe
we
can
just
reuse
sounds
odd.
Maybe
we
can
reuse
what
what
our
pipeline
execution
team
is
currently
developing
for
for
pipeline
insights
and
efficiency
and
just
have
a
mini
mini
widget
on
top
of
the
pipeline
editor
to
visualize,
what's
going
on
in
the
pipeline,
because
if
I
know
that
the
pipeline
is
just
in
the
last
stage
or
last
job,
I
will
continue
working
in
the
editor
and
see
okay.
B
A
B
B
I
don't
know
cache
something
which
can
can
easily
be
added
and
oftentimes
it's.
B
B
In
stone
it's
just,
I
want
basically
as
a
as
a
beginner
to
know
the
best
practices
and
some
there
are
some
things
which
we
cannot
fill
pre-fill
in
a
template.
So
I
really
love
that
it's
like
pre-filled,
that
it
tells
you
so
when
you
commit
it,
it
works,
and
it
gives
you
some.
Some
insights
where
I
want
to
go
is
like
we
discussed
a
while
ago.
It
detects
the
source
code
and
it
proposes
the
template
automatically.
B
So
when
I
have
nodejs
code,
for
example,
I
want
to
immediately
have
that
populated
or
proposed,
and
a
small
popup
which
says
me:
hey.
We
detected
that
there
is
javascript
or
no
chess.
We
automatically
applied
the
template
for
you
here
are
the
dogs,
the
steps
to
do
whatever
and
maybe
like
link
to
a
marketplace
or
link
to
a
collection
of
templates
or
the
drop
down.
B
Problem
gets
it
gets
problematic
with
mono
ripples
with
multiple
source
code
variations,
but
in
the
end
we
need
to
start
somewhere.
So
like
the
simple
approach
of
detecting
the
the
files
to
fixes
like
dot,
js
dot,
cpp
dot,
whatever
could
be
a
simple
way
to
to
see.
If,
if
the
idea
works.
A
Yeah
we
have
plans
to
to
do
that
for
the
status
pipeline
status
in
the
pipeline
editor
and
allowing
you
to
see
the
pipeline
run.
The
first
iteration
will
be
adding
the
mini
pipeline
graph,
so
the
mini
pipeline
graphs
that
you
see
on
the
pipeline's
index
page
for
instance,
or
we
have
it
in
many
places
in
the
ui.
So
at
least
you
would
be
able
to
see
the
progress
of
your
stages
and
you
would
be
able
to
click
on
the
stage
and
open
a
drop
down
with
the
jobs.
A
So
you
would
be
able
to
see
which
jobs
are
running
and
so
on.
So
that
will
be
the
first
step
and
yeah.
I
will
sync
up
with
vitica
as
well
on
what's
their
status
around
the
work
on
surfacing
more
insights,
around
efficiency,
because
we've
been
getting
lots
of
feedback
that
it
would
be
very
helpful.
B
And
it
kind
of
overlaps
with
the
the
idea
of
simulating
the
runtime
duration
of
pipelines,
because
I,
when
I
was
giving
the
department
efficiency
talk
in
the
in
the
past
year,
I
often
saw
that,
like
I
don't
know
it,
it
sounds
odd,
but
if,
if
you're
into
critical
path,
anal
analytics
and
and
like
calculating
the
minimum
duration
at
the
maximum
duration
of
the
pipeline,
this
is
rather
easy
if
you're
using
like
sync
dependencies
and
stages,
but
it
gets
more
complex
if
you're,
depending
if
you're,
using,
dag
or
and
needs
and
async
execution,
and
also,
for
example,
the
metrics
build.
B
So
the
parallel
builds
to
actually
speed
it
up.
It
gets
more
complex
and
you
really
want
to
like.
First
off,
you
want
to
see
the
duration
and
then
basically
a
calculation
based
on
on
what
is
there
and
say?
Okay,
this
is
the
minimum
duration,
and
this
is
the
maximum
duration
and
have
these
metrics
as
values
printed
somewhere,
doesn't
need
to
be
beautiful.
I
just
want
to
see
them
and
when
I
want
to
simulate
a
pipeline,
it's
like
you
have.
B
Let
me
see
if
I
can
find
that
I
do
have
the
this.
Was
the
aws
user
group
made
up
the
last
one?
Let
me
quickly
share
my
screen.
B
B
Basically,
this
could
be
optimized,
but
in
the
end
it's
this
is
the
critical
path
where
I'm
interested
in
and
if
the
pages
report
uploads,
I
basically
I'm
not,
I
I
might
need
them,
but
it's
not
not
important
for
for
me
as
seeing
a
result,
if
my
change
in
the
source
code
actually
worked
in
the
merch
request,
for
example-
and
I
have
that
picture
in
mind
of
saying
whenever
when
I'm
simulating
this,
I
can
maybe
click
on
here
and
say
this
job
now
takes
30
seconds
and
on
the
right
hand,
side.
B
I
have
basically
the
the
numbers
and
when,
when
I
change
it
from
2
seconds
to
10
seconds,
then
the
number
goes
up
and
maybe
the
color
gets
red,
because
the
threshold
for
the
max
pipeline
runtime
is
one
minute,
so
I'm
kind
of
when
simulating
a
pipeline
or
checking
something
often
times
it's
like
the
run
time.
The
duration,
because
the
the
run
time
is
easy
to
measure
for
us.
We
have
that
metric
already.
B
If
we
want
to
monitor
the
cpu
usage
or
the
compute
resources
being
used
or
wasted
by
by
running
the
jobs.
This
gets
more
difficult
because
this
needs
to
be
collected
by
the
runner
and
the
runner
is
not
always
the
same,
or
there
might
be
a
multitude
of
runners
in
the
cloud
and
sometimes
they
take
this
job
and
then
this
job.
So
this
is
a
little
more
complex
to
collect
the
metrics
or
to
monitor
the
compute
resources
for
this
for
the
pipelines.
B
But
the
duration
is
something
which
is
rather
easy
to
just
say:
okay,
it's
a
static
value
for
me
in
in
production.
Of
course
it's
a
runtime
value,
but
I
can
use
that,
maybe
as
a
simulation
mode
to
say.
Okay,
if
I
optimize
differ
this,
like
the
negated
view,
currently
this
compiled
job
because
it's
a
huge
project,
it
takes
five
minutes.
B
And
this
could
be
I'm
not
sure
if
it's
if
it
will
help
everyone,
but
it
could
be
a
great
idea
to
actually
visualize
what's
there
and
in
order
to
get
there.
It
would
also
be
like
needed-
and
I've
discussed
this
with
vitica
to
to
have
a
visualization
of
when
the
pipeline
execution
time
for
a
job
goes
beyond
a
defined
threshold
of
one
minute
or
five
minutes.
This
gets
read
automatically
and
if
I
optimize
it,
it
gets
green.
So
this
could
be
a
way
of
like
finding
ways
to
optimize
it
and
simulate
it.
B
If
we
move
into
a
runtime
simulation,
we
actually
need
to
wait
for
output.
If
we
do
that,
we.
B
We
actually
need
to
throw
away
the
pipeline
we
solved,
because
this
could
influence
the
merch
request,
not
being
mergeable,
or
this
could
influence
the
pipeline
history
on
its
own,
because
I
don't
know
if
it's
a
practical
example,
but.
B
There
might
be
situations
where
you
have
an
sla
service
service
level,
agreement
or
service
level,
service
level,
availability
report
on
your
pipelines
and
if,
if
a
specific
percentage
of
fire
plants
are
failing,
this,
this
fails
basically
the
dsla
or
the
slo,
and
this
might
bring
you
into
problems
and
you
need
to
argue
with
your
manager
or
with
someone
you're
reporting
to
say
the
pipelines
are
failing
solved.
B
So
when
we
do
a
simulation
for
for
something
at
runtime,
it
might
be
a
good
idea
to
just
say:
okay,
we're
throwing
away
the
the
result,
so
it's
not
affecting
anything.
It's
run
in
the
sandbox
mode.
Somehow,
but
again
it
has
the
problem
of
when
I
provision
a
cloud
resource.
B
A
Yeah,
so
right
now
we
want
to
focus
on
like,
let's
just
not
call
it
simulation,
because
it's
confusing,
I
think
we
start
calling
simulation,
because
we
already
have
a
feature
that
is
called
simulation.
But
I
agree
that
it's
misleading.
A
It's
not
a
simulation,
and
that's
that's
why
it
wasn't
so
confusing
for
me
as
well-
and
it's
also
not
very
well
documented,
like
what
exactly
does
that
simulate
simulator
pipeline
option
does,
but
we
want
to
focus
on
for
now
at
least
allowing
you
to
test
your
pipeline
in
different
contexts
and
allowing
you
to
visualize
the
pipeline
different
contexts
as
well.
So
that
would
still
hopefully
take
us
a
step
forward
in
terms
of
what
you
can
validate
in
your
pipeline.
It
would,
it
would
be
a
step
up
from
just
syntax
validation.
B
To
be
honest,
I
have
never
tried
the
simulation
mode
in
the
ci
linter,
probably
because
I
didn't
know
what
it
does
or
I
fear
that
something
breaks
and
the
currently.
This
eyeliner
is
also
hidden
or
hidden.
I've
seen
that
you've
opened
an
issue
to
to
fix
the
ux
in
that
regard,
coming
from
the
deprecation
request,
but
it's
a
different
story:
I'm
fine
with
either
what
what
we
can
find.
B
It
also
goes
along
with
pipeline
inside
so
pipeline
monitoring
pipeline
tracing
because,
for
example,
the
duration
of
a
job
also
is
a
timing
point
which
can
be
a
trace,
and
this
is
also
like
we
often,
or
we
sometimes
get
the
request.
When
are
you
adding,
for
example,
open
telemetry
into
the
ci
pipelines
to
send
the
duration
or
sensor
metrics
from
the
jobs
from
the
pipeline
to
open
telemetry
and
the
consumer?
Stand
because
in
fallen.1
we
have
added
the
datadog
integration
for
ci
and
this
could
just
like
collect
certain
metrics
from
gitlab.
B
I
had
I
haven't,
had
a
look
yet,
but
it
uses
metrics,
which
we
potentially
could
also
use
in
the
in
the
front
end
just
for
the
top
duration
for
for
sharing
more
details
on
how
this,
how
a
simulation
or
how
I
should
avoid
the
term
simulation,
how
this,
how
this
works
and
how
you
can
influence
that
and
like
to
have
a
picture
of
that,
a
flame
graph,
I'm
not
sure
if
you're
familiar
with
the
concept,
but
when
you're
developing
software,
sometimes
you
have
functions
which
take
a
specific
amount
of
time
and
when
they're
just
executed
once
for
run
time,
two
seconds,
it's
totally
fine,
but
when
they
execute
it
a
million
times
it
might
slow
down
your
application.
B
So
you
have
a
flame
graph
of
the
of
the
call
stack
and
you
can
see
how
often
and
how
long
an
application
is,
is
executed
and
I'm
thinking
of
like
getting
an
idea.
This
job
is
running
for
two
minutes.
Okay,
that's
totally
fine,
but
this
job
gets
executed,
10
000
times
during
the
day,
so
it
tremendously
might
slow
down
the
pipeline
or
it
might
affect
what
you're
paying
for
aws,
for
example
in
the
cloud,
because
it's
it's
consuming
lots
of
resources-
and
I
know
that
this
is
not
a
hundred
percent
pipeline
authoring.
A
Yeah,
of
course,
we're
very
interested
in
pipeline
optimization
because
you
know
pipeline
authoring
is
part
of
pipeline
optimization.
So
this
is
something
like
this
area.
We
will
have
to
definitely
collaborate
on
with
a
pipeline
execution
team.
Do
you
have.
B
A
Feedback
around
the
current
functionality
of
the
limiter,
like
the
output
that
the
lynch
provides.
Do
you
see
any
ways
to
improve
it.
B
B
That's
not
what
I'm
thinking
of,
but
I
I
kind
of
want
to
want
to
get
a
suggestion,
what
to
fix
or
a
suggestion
based
on
the
scope
to
the
documentation,
saying
hey
you're,
using
the
the
rules
in
this
scope,
and
the
error
is
actually
coming
from
from
the
rules
in
this
in
the
job
scope
here.
Is
it
here's
the
docs
url
because
oftentimes
when
I
see
an
error,
I'm
like
okay
yeah?
Maybe
maybe
I
immediately
know
what
the
problem
is
or
the
error
message
is
so
amazing
that
I
can
fix
it
immediately.
B
But
for
a
beginner
I
said
they
might
be
looking
up
a
workshop
or
looking
up
a
tutorial
on
the
internet
and
it
might
not
be
up
to
date,
so
they
com,
they
are
copying
something
and
it
doesn't
work.
And
if
you
need
to
reverse
engineer
someone
else's
work,
especially
because
the
yammer
is
actually
like
writing
code,
it's
it's
hard
to
get
there
and
the
other
thing.
B
So
what
what
I've
heard
is
the
linting
and
also
like
the
merged
yammer
is
super
helpful
when
you're
using
templates
and
when
you're
trying
to
create
reusable
ci
config
code
because
reinventing
the
wheel
is
like
okay
copy
paste
works,
but
then
you
change
it
in
the
upper
line,
but
not
in
the
lower
line,
and
it
does
so
it.
It
gets
out
of
sync-
and
I
don't
know
how
we
can
do
that.
B
But
I
would
love
for
us
to
statically
detect
if
there
is
a
duplication
and
automatically
propose
a
template
or
like
a
jobs,
template
and
then
maybe
propose
saying.
Okay,
this
building
block
in
the
pipeline
could
be
totally
moved
into
a
separate
file,
and
this
is
the
best
practice
and
I
just
remembered
I
sometimes
get
asked
what
is
the
best
practice
to
store
local
templates
ci
templates?
Is
it
dot
gitlab,
slash,
ci,
whatever
you
keep
using
at
gitlab
on
the
project?
Or
do
you
suggest
something
else?
B
So
if
we
go
ahead
with
the
pipeline
editor
and
maybe
add
a
section
of
saying
hey,
this
is
specifically
ci
templates
and
these
are
stored
in
this
directory
because
we
say
it
is
like
that
and
documented.
B
A
B
Is
this
is
a
long
term
vision
or
midterm
vision,
vision?
This
potentially
needs
yeah,
some
logic
which
detects
duplication,
and
I
can
imagine
that
this
is
not
easy
to
to
implement,
but
I
think
for
beginners
who,
who
don't
know
what's
next
after
after
writing,
the
first
pipelines,
it
might
be
helpful.
A
That's
a
great
idea:
yeah,
that's
in
line
with
our
vision,
around
cica
templates
and
we're
planning
to
make
it
possible
to
easier
use,
includes
in
your
in
the
pipeline
editor.
So
you
would
be
able
to
not
only
apply
whole
workflow
templates,
but
actually
work
with
reusable
templates
as
well.
B
I
had
a
coffee
chat
with
jackie
a
while
ago
or
last
week.
I
think-
and
we
also
talked
around
like
the
idea
of
a
marketplace
or
the
idea
of
providing
a
location,
not
just
like
a
repository
view
where
you
can
download
our
ci
templates
but
to
provide
a
way
to
contribute
to
maintain
to
yeah,
to
make
it
easier,
because
we
also
not
only
have
ci
templates.
We
also
have
templates
for
pages,
for
example,.
B
Which
are
similar
but
sometimes
not,
and
if
we
find
a
way
to
to
make
it
more
visible
to
the
to
the
user
starting,
I
think
it's
a
great
way.
I've
seen
that
there
is,
I
think,
currently
there's
a
button
in
the
pipeline
editor
for
the
templates.
I
would
wish
for
a
drop
down
like
the
web
ide,
and
I
think
there
is
an
issue
already,
because
when
I
figured
out
in
the
web
ide
some
years
ago
in
the
gitlab
trainings
I
did
for
customers
in
my
past
shop.
B
B
Hopefully
no
one
edits
has
edited
the
template
in
the
meantime
upstream
and
you
we
just
keep
using
that
and
just
changing
some
configuration
things
and
from
there
it's
it's
super
convenient
to
to
teach
a
lesson
on
gitlab
ci
cd,
because
there
is
an
editor,
you
get
everything
you
need
and
I
can
retire
some
older
slides
of
mine
with
the
public
editor
as
well.
B
So
it's
not
this.
I
made
a
mistake,
of
course,
when,
when
teaching
ci
cd,
we
make
mistakes
to
prove
that
there
is
validation
to
prove
that
there
is
something
going
wrong.
But
in
the
end
it's
I
really
love
what
you're
all
doing
with
the
pipeline
editor,
because
it
makes
it
super
yeah
super
easy
to
explain
and
also
get
people
just
started
and
say:
hey.
It's
amazing
that
you're
using
a
different
scm,
tooling
and
ci
cd
tooling.
B
But
if
you
want
to
try
gitlab
here's
the
pipeline
editor
just
go
ahead
and
by
the
way
you
have
a
workshop,
which
tells
you
even
more
about
headphones.
You
can
learn
at
your
own
pace
and
yeah.
So
I'm
I'm
super
happy
where
we
are
heading,
and
this
totally
aligns
with
my
vision
from
like
one
and
one
and
a
half
years
ago,.
A
That's
great,
thank
you
so
much
michael
for
all
of
your
feedback.
That
was
really
helpful.
As
always
I'll
keep
you
posted,
as
we
start
diving
more
into
developing
some
of
these
ideas.
Many
things
that
you
mentioned.
We
already
have
some
issues
and
epic
scores
so
I'll
just
make
sure
to
loop.
You
in
when
we
start
having
those
discussions.