►
From YouTube: Add PullCommand to githttp package Deep Dive
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).
B
Yes,
so
I'm
gonna
share
my
screen,
so
we're
gonna
talk
about
these
merge
requests
need
summer
requests
on
the
gitlab
shell
project
so.
B
The
client
requests
the
detail
for
get
close.
For
instance,
oh
yeah,
it's
with
jio
it's
with
jio
and
we
have
a
secondary
site
and
a
primary
site.
B
B
This
would
be
rerouted
to
the
primary
site
through
Workhorse.
It
would
come
back
with
a
response,
and
then
we
have
the.
We
request
the
data
stream
to
be
the
the
data
that
needs
to
be
pulled
again
this
and
that's
where
we
had
a
problem,
because
here
those
requests,
those
ones
can
be
pretty
long,
sometimes
more
than
30
seconds.
B
B
This
is
a
diagram
made
by
Igor
by
the
way
who
helped
me
with
this
through
the
whole
process.
Yes,
Sean.
A
B
Yeah,
we
didn't
change
the
time
out
time
we
did
Igor
and
the
rest
of
the
team.
Geo
team
thought
of
something
a
little
bit
more
clever.
Okay.
So,
instead
of
here
like
when
we
request
the
the
Stream,
instead
of
going
through
the
secondary
site
workers
and
rails
to
request
for
the
the
the
stream
of
data,
we
go
directly
to
the
primary
and
request
the
the
stream
here.
So
the
difference
is
instead
of
going
first
through
our
work,
the
Workhorse
here
getting
then
making
and
just
proxim
the
request.
B
B
This
is
the
the
the
controller
would
say
or
I
would
call
it
it's
like
the
controller.
It
gets
the
that's
where
the
the
request
for
upload
pack
is
handled
so
yeah.
So
here
it's
just
like
we.
This
is
I,
don't
know
if
you
you
guys,
did
the
whole
screen
because
I
don't
because
of
the
because
of
you
guys
faces,
but
okay
I
just
placed
it
out
somewhere
else.
Okay,
so
here
this
is
just
to
do
this.
If
this
feature
flag
is
enabled,
this
was
done
in
an
in
another
Mr.
B
But
yes,
this
is
just
putting
a
feature
flag
or
giving
the
feature
flag
data
on
this
level.
When
we
request
for
authorization
Keys,
we
also
send
back
the
feature
flag
data
to
to
let
them
know
if
it
can
perform
this
part
of
the
code
instead
of
the
default
part
of
the
code,
which
is
here
and
in
this
part
of
the
code,
we
call
the
package
the
go
package:
GitHub
HTTP
pull
command,
which
is
the
one
we
created.
B
Yeah,
it's
it's
free!
It's
it's
basically
calling
the
is
basically
calling
the
HTTP
the
the
endpoint
to
the
primary
website
here
with
client.go.
B
Yeah
execute,
so
that's
what
it
does
here,
yeah
if
there
is
an
error
like
return
the
error
and
then
it
does
like
yeah
the
comments
upload
pack,
which
is
request,
upload
pack,
which
is
here
and
that's.
B
Thus,
we
that's
where
we
actually
called
the
upload
pack
command.
B
We
create
a
streamable
like
because,
because
like
gold
works
with
streams
for
Strings
and
the
shell,
outputs
is
a
little
bit
different
than
the
HTTP
output.
So
we
need
to
transform
the
shell
out
the
HTTP
output
into
the
shell
output
and
that's
what
we're
doing
here
as
soon
as
we
have
like
as
soon
as
the
reader
streams
in
and
yeah.
B
That's
also
what
it
does
here
but
like
here
for
for
for
the
full
Command
right
now
it
doesn't
do
much
because
for
the
moment
only
I
don't
know
if
it
was
fixed
or
you
you
can
tell
us
after,
but
for
the
moment
the
git
pool
the
HTTP,
the
HTTP
response
for
the
git
pool
and
the
git
lab
shell
response
for
the
pool
are
kind
of
the
same.
So
we
just
copy
the
line
here
and
we
we
move
forward.
B
So
now
it
just
works
for
the
git
pull
I,
don't
know
if
it
was
fixed
by
right
now
for
the
git,
but
it
only
works
for
the
git
clone.
Sorry,
but
I
don't
know
if
it.
What
speaks
for
the
git,
pull
and
yeah
here
are
some
tests
and
we
just
yeah
here
and
upload
pack
yeah.
Here
we
just
stream
the
the
pool
we
just
actually
here
and
request.
Okay,
we
close
the
body,
so
we
we
stream
the
the
the
the
response
back.
B
C
Mr,
just
a
congrats,
because
that
that
is
deep
in
the
weeds
that
code
right
there,
that's
filling
with
like
the
git
output
and
yeah.
It
means
complex
because
before
it
was
golang
was
written
in
Ruby
and
we
tried
really
hard
to
not
put
in
references
to
Geo.
The
whole
idea
was
because
there's
no
ee
version
Enterprise
Edition
of
shell.
So
there
was
this
custom
payload
sort
of
concept
to
kind
of
abstract
away
the
Jew
sort
of
geothermology.
So
it
is
probably
a
little
more
complex
than
it
needs
to
be.
C
So
you
did
really
well
it's
a
it's.
A
really
kind
of
crazy
part
of
the
code,
so
well
done.
B
B
D
Vasili
yeah,
thank
you
for
the
presentation.
It
was
very
interesting.
I
was
not
aware
about
this
part
and
I.
Have
a
question:
I
noticed
that
we
use
so
GitHub
shell
and
we
use
it
mostly
for
the
SSH
connections
and
we
have
like
Workhorse
that
we
use
for
HTTP
connections
and
in
this
case
we
use
the
we
received
the
SSH
connection
and
kind
of
make
a
HTTP
request
to
the
Workhorse
to
pull
the
data
and
I
was
wondering
why.
C
I
can
answer
it,
but
Igor
did
you
want
to
have
a
go.
C
Yeah
I
think
the
original
reason
was
that
there
was
no
way
for
Italy
to
listen,
remotely
or
listen.
I,
don't
think
there
was
at
the
stage
when
the
Geo
logic
was
being
implemented
in
Shell,
I
didn't
believe,
Italy
could
listen,
TCP
I
think
it
was
only
socket,
so
we
couldn't
talk
directly
to
giddly
and
the
first
iteration
of
the
the
logic
was
actually
just
essentially
using
AJ
proxy.
C
Instead
of
having
the
logic
handled
inside
shell
and
then
kind
of
proxied
under
the
covers,
the
request
would
be
not
even
fielded
by
the
actual
gitlab
shell
and
the
secondary.
It
was
bounced
over
to
primary,
but
it
was
deemed
too
complex
and
that
we
couldn't
impose
AJ
proxy
as
a
requirement
for
customers.
So
we
had
to
internally
handle
Handler
and
it
was
was
deemed
the
the
easiest
first
cut
was
to
use
essentially
HTTP
under
the
covers.
C
D
C
D
E
I
think
it's
fine
I
think
it's
perfect,
actually
yeah
to
be
honest,
I
think
now,
when
it's
like
memory,
efficient
yeah,
when
it's
like
performing
in
a
streaming
fashion
through
a
gitlab
shell,
then
yeah
I,
think
I.
Think
it's
fine,
like
all
the
requirements
are
satisfied,
so
I
think
yeah.
E
It's
fine
as
it
works
now
like
the
only
issue
that
we
have
at
the
moment
is
that
git
pull
doesn't
doesn't
work,
but
it's
like
work
doesn't
work
on
the
previous
I
believe
customers
had
issues
with
the
previous
version
and
like
we
decided
to
move
forward
with.
With
this
issue
like
we
decided
to
move
forward
with
this
first
request
and
fix
the
issue
in
a
separate,
separate
match,
request
or
issue,
so
yeah
should
be
fine,
I
think
yeah.
B
So
so
hash
you,
you
said
that
Italy
didn't
like
couldn't
work
with
TCP
requests.
Does
it
now
or
I.
D
C
Believe
it
can
do
can
now
and-
and
that
was
to
provide
end
to
end
TLS.
Encryption
I
believe
was
the
kind
of
driving
Factor
there,
but
yeah
I'm,
not
sure.
If
it's
able
to
listen
I'd
have
to
double
check,
it
may
be
worth
revisiting
the
original
constraints
because
they
may
not
be
relevant
any
longer.
So
it's
a
good
question.
C
There
might
be
a
more
direct
way
to
sort
of
interact
with
different
pieces
without
going
through
so
many
layers,
because
that's
the
the
ultimate
goal
of
of
the
Mr
that
you've
implemented
is
to
to
try
and
improve
the
performance
and
reduce
how
many
layers
the
request
goes
through.
That's
a
good
question.
A
Now
earlier
on,
you
mentioned
that
we
couldn't
impose
hey,
we
can't
impose
proxy
on
our
customers.
So
so
are
we
essentially
building
that
proxying
functionality
into
right,
okay,
yeah,
yeah.
C
Essentially,
in
depending
on
the
response
given
back
from
rails,
we
we
do
and
if
it,
if
it's
detective,
there's
a
Geo
request
and
it
comes
back
in
the
the
response
from
rails.
Then
that's
where
the
trickery
occurs
with
redirect
your
requests.
C
It's
not
really
redirecting
it's
proxying
I
should
say
because
the
the
gitlab
shell
connection
is
actually
doing
the
sort
of
heavy
lifting
yeah.
It's
in
in
some
part,
I.
Think,
there's
I
think
it's
the
the
get
push.
We
actually
do
some
fiddling
with
the
response,
which
is
I'm,
always
a
bit
scared
about.
If
you
know
the
git
protocol
decides
to
to
change
or
something
like
that,
but
yeah
that
that
was.
C
That
was
the
the
reason
why
we
couldn't
impose
that,
but
I
believe
proxy
is
now
part
of
the
Omnibus
stack
so
and
that
again
it
may
be
worth
revisiting.
If
that's
we.
A
E
But
yeah
when
we
discussed
it
with
Mike
from
GRT
to
be
honest,
yeah.
It
was
also
my
like
her
first
idea
that
we
like
respond
with
the
primary
gitly
like
path,
and
then
we
just
connect
and
I
believe
the
answer
was
something
about
that.
You
can
connect
directly
to
gitly
from
secondary
instance
to
primary
instance,
either
due
to
a
firewall
so
due
to
architectural
decisions.
So
you
need
this
like
work
around,
go
to
access
gitly,
either
through,
or
course
so
through
gitlab,
shell
and
all
or
else
and
yeah.