►
From YouTube: GSoC 2021 Git credentials binding 2021 05 20
Description
Git credentials binding project meeting during Google Summer of Code 2021. Community bonding to investigate and understand issues and prepare for the coding phase that begins June 7, 2021
A
A
C
A
I
was
assuming
we
would
use
with
credentials
and
just
add
a
new
add
a
new
type.
So
today
we've
got
what
is
it
username
and
we've
got
username
password
and
we've
got
private
key
and
I
was
assuming
we
would
have
a
get
username
and
password
and
a
get
private
key
as
the
type
so
that
we
know
when
they
give
that
argument
that
we
need
to
set
the
the
collection
of.
A
C
D
So
that
means
mark
that
we
would
add
that
in
the
grid,
the
credentials
binding
plugin.
D
My
assumptions
right
yeah,
so
so
this
moves
from.
So
that
means
that,
because
I
was
under
the
impression
that
the
proposal
said
that
we're
doing
it
in
the
get
client
plugin
only
with
a
new
step
with
git.
A
Okay,
all
right
and
I
had
I
had
not
caught
that
in
the
okay
so
harshly.
Maybe
we
do
need
to
share
your
share
the
proposal.
Let's
take
a
look
at
it,
so
that's,
maybe
I'm
just
I'm
off
base
there
thanks
thanks
for
highlighting
that
richard.
So
no.
D
No,
I'm
sorry
mark.
I
was,
I
think
there
was
a
discussion
there,
that
it
could
be
done
in
the
git
in
the
credentials
binding
plug-in
or
there
could
be,
I
think,
in
the
in
the
project
idea.
We
said
that
we
could
create
a
new
step,
but
then
harship
recommended
that
we
could
do
it
it
within
the
credentials
binding
plugin,
so
yeah
it'll
be
best.
If
we
just
confirm
that
from
and
maybe
we
could
discuss
which
one
is
a
better
approach
or
what's
harshit's
idea
on
that.
C
I
thought
of
making
the
git
plugin
compatible
with
the
pipeline,
so
we
could
work
on
that.
The
grid
potential
plugin,
I
thought,
taking
as
a
reference
rather
than
working
on
that.
B
And
I
guess,
if
I
remember
correctly,
I
think
technically,
if,
if
we
wanted
this
to
be
in
with
credentials,
you
could
provide
a
new
credentials
type.
So
you'd
provide
a
new
implementation
of
a
credential
type
and
I
think
you
could
potentially
put
that
in
either
space.
A
Yeah
well
yeah,
so
so,
okay,
so
so
I
was,
and
maybe
maybe
that's
where
I've
misunderstood
the
credential
system-
everyone!
Okay,
if
I
share
my
screen
for
just
a
minute
to
to
have
something
concrete
to
talk
to
yeah,
go
for
it
because
this
way
I've
got.
I've
got
a
jenkins
instance
that
I
can.
We
can
talk
to
and
and
reduce
number
of
mistakes
that
I
may
be
making.
Okay
so
and
I
stood
up
my
doctor
if
I,
if
I
need
to
explain
that
other
thing
to
you,
excellent
okay,
so
so
what
I?
A
What
I
have
for
instance
here
is
a
here,
is
a
freestyle:
let's
see!
No,
we
do
we
want
freestyle,
or
do
we
want?
Oh
no.
We
want
a.
We
want
a
pipeline
job,
so
here
is
a
pipeline
job
that
builds
the
git
plug
in
and
runs
its
tests,
and
in
this
I
was
assuming
we
would
do
with
credentials
oops.
Where
is
the
with
credentials
with
credentials?
B
A
Okay,
so
then,
and
and
that
that
sounded
to
me,
that
sounds
to
me
like
more
work
or
different
work
than
I
was
expecting.
My
apologies
for
not
having
thought
that
through
so
so
what
that
says
is
because
I
was
assuming
I
want
to
use
as
a
user.
I
want
to
use
one
of
my
existing
private
keys.
I
don't
want
to
have
to
create
a
new
credential.
A
A
D
And
it
makes
sense
to
from
a
point
of
view,
development.
It
makes
sense
that
we're
we,
if
we're
creating
new
bindings,
we
would
do
it
in
the
credentials
binding
plugin,
because
it
is
the
place
where
the
bindings
are
right.
So,
if
they're
creating
new
binary,
it's
creating.
B
Yeah,
not
exactly
okay,
I
think
that
you
get
new
bindings
from
other
plugins,
so,
like
I
think,
mark
had
a
docker
credential,
and
I
think
that
that
credential
type
actually
comes
from
the
docker
plug-in
when
that's
installed
and
the
credential
binding
plug-in.
If
I
remember
right,
is
just
looking
up.
A
Types
of
credentials
yeah,
so
so
I
guess
conceptually
justin.
What
you're
saying
is
that
a
credential
binding
for
get
ssh
private
key
here
could
be
written
in
the
git
plugin
or
the
get
client
plug-in.
It
would
then
be
found
by
the
credentials
binding,
plug-in
and
displayed
to
the
user,
but
it
would
be
a
separate
credential
type.
Wouldn't
it
right
right?
Okay,
all
right,
so
that
that
shows
my
my
ignorance
in
writing.
The
project
idea
great
okay,
harsh
it.
So
that's
well.
B
A
C
No,
I
thought
well.
If
we
use
the
credential
binding
plugin,
then
we
have
to
use
the
git
client
plugin
to
perform
the
authentication
operations.
A
And-
and
that
is
just
fine,
placing
a
get
client
plug-in
makes
makes
a
makes
a
lot
of
sense
that
that
would,
if
that's,
because
they
they
travel
as
a
pair
right.
I
I
always
if
I've
got
the
git
plug-in
installed,
I
must
have
the
get
client
plug-in
installed,
and
so
so
that's
not
not
a
problem.
That
would
be
great.
D
D
B
Hazy
on
this
too,
so
so,
please
feel
free.
D
D
Listen,
I
I
had
a
doubt
and
please
correct
me
if
I'm
wrong,
so
if
my
credentials
are
something
that
many
plugins
could
use,
then
definitely,
I
would
add
it
in
the
credentials
binding.
B
D
B
A
Out,
okay,
so
then,
then,
I
think
what
so
is
this
a
case
where
one
of
the
questions
to
harshith
would
be
explore
a
implementing
a.
A
C
A
A
This
is
another
pc.
I
don't
have
on
this
okay.
So
so
then
I'm
gonna
start
sharing
mine.
Oh
you
can
see.
Hopefully
you
can
see
it
now,
okay,
so
so,
when
I
do
this
binding
there
is
user
and
past
username
and
password
conjoined
and
user
and
username
and
password
separated,
aren't
those
both
representations
of
a
username
password,
because
there
isn't
a
separate
credential
that
is
username
and
password
conjoined
right.
The
only
credentials,
types
that
I've
got
are
username
username,
slash,
password
and
private
key
well,
private,
key
and
a
few
others.
B
So
high
c2
implementation
might
be
sorry.
Michelle.
D
A
B
So
I
because
a
lot
of
this
is
based
on
the
type
system,
so
I
think
that's
what's
happening
there,
but
we
should
look
at
it
yeah
again.
A
A
Okay,
so
use
rishab.
It
was
in
implementation.
D
B
Id
and
then
they
just
represent
it
differently
as
variables.
So
it's
kind
of
like
a
bridge
between
the
actual
credential
and
like
the
downstream.
A
Step
right
right,
so,
okay,
so,
and
that
that
was
that
now
you're
you're,
that's,
for
instance,
this
m.put
here
sorry,
is
that
big
enough
for
people
to
read
there.
This
m.put
is,
is
sort
of
that
specific
implementation,
you're
describing
right
in
the
in
the
bind
here.
It's
saying:
okay,
we're
going
to
us
create
a
variable
for
username,
and
it's
going
to
have
this
value
and.
B
A
A
I
think
we
don't,
because
can't
the
same
thing
work
here
for
the
ssh
user,
private
key,
binding
harsheth
would
create
a
new,
maybe
call
it
get:
ssh
private
user,
private,
key,
binding
or
ssh
user
private
key
binding
for
git
or
something
and
then
add
additional
things
in
the
bind
step
here
that
are
specific
to
what
command
line
git
needs
in
order
to
find
that
private
key.
So
I
get
ssh
command
environment
variable
or
those
kinds
of
things,
because
because
this
is
doing
that
same
get
credentials
that
you
mentioned
earlier
justin,
isn't
it.
B
Yeah,
I
guess
the
only
edge
case
I
could
see
there
potentially
is
like
someone
puts
and
maybe
you're.
This
is
what
you're
saying
is,
like.
I
think,
you're
looking
for
a
super
type
of
this.
That
would
do
all
the
same
things
as
this
that
subtype
sorry,
that
it
would
do
all
the
same
things
as
this,
but
it
would
also
have
that
extra
extra
stuff.
I
think
we
probably
would
want
folks
to
say
this
is
a
actually
is
a
get
private
key,
and
this
is
not
right
and
maybe
that's.
A
Getting
a
little
too
extra
well
see,
I
was
assuming
I
think
at
least
for
me.
I
don't
want
to
have
to
say
that
this
thing
is
a
get
private
key,
because
I'm
already
using
private
keys
in
lots
of
places
for
git
right
there
they're
most
of
the
cases
where
I
use
private
keys
already
or
forget,
and
I
don't
want
to
have
to
define
a
new
credential
just
to
be
able
to
use
it
with
this
new
capability
that
harshit's
going
to
implement.
A
B
So
the
challenge
there,
though,
is
that
I
think
you're
gonna
need
to
fill
in
another
variable,
and
so
I
think
you,
if
I
understand
correctly
we're
trying
to
fill
in
another
variable,
which
is
the
get.
A
A
So
so,
yes,
there
is.
We
have
to
do
an
additional
environment
variable
for
the
the
get
version
of
this,
and
in
this
one
we've
got
to
do
an
additional
environment
variable
at
least
one
for
how
do
we
transmit
the
the
username
password
to
the
user
or
to
the
to
the
git
command
right?
But
it's
just
derived
it's
not
something
that
the
user
has
to
fill
on
right,
correct
right,
it
is
just
derived
yes,
you're,
absolutely
correct.
In
fact,
we
don't
want
the
user
to
have
to
think
about
it.
A
C
Sure
so
till
now,
what
I
understand
that
we
have
to
create
a
a
separate
behind
binding
name
like
git
credential
ssh,
something
like
that,
and
we
have
to
drive
it
from
the
ssh
user
and
perform
it
for
basic
grid
tasks.
A
That
was
that
was
my
assumption
and
that's
where
justin
tell
me
if,
where
so
justin
justin's
concept
was
no
it's,
it
would
be
best
if
we
had
a
separate
credential
type
and
I'm
still
not
not
entirely
sure.
I
understand
it,
but
but
harsh
you
harshit
you
described.
What
I
was
thinking
is
that
there
would
be
some
special
specialized
version
of
this,
not
ssh
user
private
key
but
get
something
get
ssh
user
private
key
binding.
A
B
Yeah,
I
think
that
makes
sense,
and
it
would
just
do
the
special
things
that
it
needs
to
do
to
be
the
get
type
of
that
yep.
A
A
When
this
thing
was
describing
get
ssh
private
key,
that
was
the
kind
of
idea
I
was
at
least
mentally
thinking
was.
It
would
be
a
class
like
this
one,
but
not
this
one.
So
it
would
be
this
one
plus
some
additional
capabilities.
Then
then
this
one
was
the
same
kind
of
idea
based
on.
I
don't
know
if
it
should
be
based
on
multi-binding
or
binding,
I'm
not
sure,
and
that
I
think
we
would
need
you
to
investigate
which
of
those
two
is
the
better
choice
in
terms
of
getting
delivering
the
information
to
command
line.
D
D
And
I
I
think
that
we
implementing
these
two
bindings.
D
What
we
need
in
the
git
client
plug-in
would
be
easier
for
hardship,
because
then
we
would
have
the
git
client
apis
within,
although
we
could
do
the
same
in
the
grid,
credentials
plug-in
as
well,
but
sorry
the
credentials
binding
plug-in
but
very
easier
within
that
ecosystem.
A
And-
and
I
think
that's
a
good
point
which
which
location
should
should
do
it
is,
is
a
very
good
point
right,
because,
just
as
justin
noted
as
justin
notice,
this
docker
client
certificate
doesn't
have
any
implementation
here
right,
there's
no
mention
of
docker
anywhere
in
the
in
the
credential
bindings
plugin,
so
that
must
be
coming
from
another
plugin.
So
I
think
you've
got
a
very
good
point.
Rishabh
that
the
git
client
plug-in
may
be
a
great
place
to
put
this,
and
it
could
then
use
the
implementation.
A
A
Point
so
it
sounds
like
rishabh
is
suggesting
and
justin.
It
sounds
like
you'd
be
okay
that
harshit
your
idea,
let's
put
it
in
the
git
client
plug-in,
rather
than
putting
it
in
the
credentials
binding
plug-in
or
the
proposal
is,
let's:
let's
have
you
put
it
into
the
git
client
plug-in
that
has
the
benefit
that
I'm
a
maintainer
of
the
git
client
plug-in.
I
can
merge
your
changes
if
you
propose
them,
we
don't
have
to
go
to
ask
anybody
else.
So
that's
that's
a
real!
D
B
A
A
B
A
Yeah
yeah
now
now
this
probably
means
okay.
Does
this
mean
that
we
have
that
will
mean
either
an
explicit
dependency.
A
A
Binding
well,
but
but
I
was
I
was
assuming
that
some
some
place
in
the
get
plug-in
it
will
have
to
reference
this
notion
of
a
multi-binding
or.
A
A
On
this,
so
so,
if
I
subtype
on
this,
then
I
am
definitely
going
to
depend
on
on
the
credentials
binding
plug-in,
but
I
mean
that
makes
sense.
You
can't
have
this
unless
we
depend
on
it
and
then
it's
that
that's
that's
fair
right.
If,
if
you
want
this
functionality
and
and
we've
got
many
users
who
want
it,
then
they
need
credentials
binding.
B
A
A
C
A
That
knows
lots
about
how
to
do
how
to
communicate
credentials
to
command
line
git
and
since
it
knows
how
to
communicate
credentials,
the
command
line
get
it
makes
sense
to
me.
It
really
should
be
the
get
client
plug-in.
I
should
have
thought
of
that
when
I
was
drafting
this
idea.
It
I
think
git
client
plug-in,
makes
more
sense
yeah,
but
yeah.
I
would
agree
yes.
D
A
B
And
the
git
client
plugin
both
just
depend
on
credentials
and
ssh
credentials.
A
B
You
might
look
into
whether
you
need
that
too,
though,
you
might
be
able
to
just
directly
leverage
the
same
underlying
ones
and
you
may
need
multi-binding,
so
you
you
might
be
able
to
just
get
away
with
doing
a
lookup
like
these
do
potentially
sorry,
I'm
also
not
sure
what
that's
going
to
look
like.
So
that's
where
I'm
going
to
look
for
for
you
to
do
the
some
work,
but
does
that
make
sense?
What
I'm
saying
to
anyone.
D
B
These
credential
pipes
are
basically
extending
a
multi-binding
which
is
also
a
credentials
binding
thing,
but
they're
extending
multi-binding,
which
provides
standard,
username
password
credentials,
the
get
client
and
get
just
look
at
the
credentials.
Plugin
classes
you
may
be
able
to
get
away
with
just
doing
a
credentials.
Lookup,
I
think,
get
credentials
see.
Where
does
git
credentials
come
from
that
method.
A
I
think
does
that
come
from
credentials
binding.
It
looks
like
it's
coming
from
binding.java
in
this
class
or
multibinding.
A
B
A
D
Okay,
I
was
just
saying
that
this
this
should
be
a
good
exercise,
for
how
should
for
the
design
document
is
what
we're
discussing
here
is
essentially
how
we're
going
to
design
those
implementations
for
the
credential.
D
B
C
D
A
Right,
I
think
so
so
this
one
yeah
at
least
that
was
my
idea.
My
thought
was
if,
if
it's
more
convenient
to
extend
the
class
so
that
effectively
you're
borrowing
all
of
the
implementation-
that's
inside
here
great
now
or
is
this
yeah
so
that'll
be
an
interesting
to
see
what
that
means.
I
suspect,
with
this
at
symbol.
It
probably
means
you
you,
you
cannot
simply
extend
it
right
or
if
you
do,
you
have
to
provide
a
replacement
descriptor.
A
C
A
C
No,
but
can
I
walk
through
the
what
I
understand
from
today's
session?
Yes,
please
absolutely.
C
Okay,
so
so
our
basic
idea
is
to
make
a
dependency
of
git
credential
binding
in
the
git
client
plugin,
and
we
have
to
yeah.
I
have
to
explore
more
on
the
classes
on
the
class
of
what
I
have
to
implement,
either
a
new
class
or
extend
the
previous
one,
also
the
class
that
that
will
be
created.
If
I
implement
a
new
one,
we'll
be
using
the
using
the
credential
binding.
C
C
A
C
Okay,
I
thought,
like
the
great
good
client
plugin
will
taking
the
credential
binding
as
a
dependency
and
the
credential.
I
was
thinking
of
creating
a
new
class
in
the
credential
binding,
which
would
be
specific
for
the
git
operations
and
then
that
could
relate
to
the
git
client
plug
client
plugin
for
the
lower
level
operations.
D
So
as
we
as
justin
pointed
out
initially,
since
this
binding
will
be
closely
associated
to
the
kit,
get
plug-in
and
its
users,
would
it
be
beneficial
for
us
to
implement
it
in
the
credentials
binding,
plugin
and
be
available
for
all
of
the
plugins.
C
B
B
Sure
no
worries,
and
maybe
that's
maybe
that's
what
yeah
as
you're
doing
the
document
and
stuff
like
definitely
feel
free
to
like
play
around
with
code
and
like
see
what
kind
of
makes
sense,
try
and
see
if
you
can
get
some
of
this
stuff
working
and
stuff
like
that.
B
A
C
C
A
A
I
think
that's
what
it's
doing,
isn't
it
or
an
all
extension
implementation
of
an
extension
point,
and
so
because
this
docker
client
certificate,
even
though
it's
not
actually
implemented
inside
the
credentials,
binding,
plugin
credentials,
binding,
finds
it
by
searching
in
the
currently
running
jenkins
and-
and
so
that's,
how
get
client
plug-in
will
provide
it
as
well.
It'll
just
be
found
automatically.
A
B
B
A
B
D
D
B
Horseshit,
have
you
have
you
run
a
have
you
done
the
maven
hpi
run
stuff
within
a
plug-in,
because
that's
super
useful
for
testing
things
out
like
this.
If
that
makes
sense,.
A
A
Okay,
that's
that's
very,
very
good.
It
took
me
a
l,
an
embarrassingly
long
time
to
re
to
discover
that
thing
me.
A
D
A
So
harsh
other,
oh,
I
guess
I
have
a
question
before
we're
approaching
the
end
of
our
hour.
I
have
another
question
in
terms
of
what
are
good
times
to
meet
and
I've
got
so,
let's
see
good
times
to
meet
and
mark's.
A
News
so
does
this
this
time,
I
think
we
decided
works
reasonably,
which,
which
days
work
work.
Well,
I'm
not
available.
Let's
see
today
is
wednesday.
Is
that
right,
I'm
not
available
tomorrow
at
this
time
and
then
I'm
gone
to
go
visit
my
grandchildren
until
monday,
but
I
could
meet
or
till
next
tuesday,
india
time
I
could
meet
next
tuesday.
A
D
C
C
A
A
Let's
see
I'm
going
to
bring
up
a
calendar
just
a
minute,
so
if
we
look
here
at
next
week
so
right
now,
it
is
3
a.m.
Utc!
Okay!
So
if
we
look
at
next
week's
calendar,
thinking
about
there's
3
am
utc
oops,
or
would
it
be
roughly
12
hours
12
hours
offset
hardship?
That
would
work
well
for
you.
C
A
D
A
B
Yeah
I
mean
I,
I
definitely
want
to
support
kind
of
harsh
it
and
the
majority
I
can.
I
can
make
this
time
work
no
problem
morning
works
for
me
also,
if,
if
that's
something
that
we
want
to
go
for
but
yeah
this.
A
Works.
This
time
works
well,
okay,
so
if,
if
morning
works
for
you,
then
maybe
what
we
do
because
the
next
piece
is
I've
harshed,
I'm.
I
have
been
approved
to
donate
a
kidney
to
my
nephew
and
I
will
go
offline
june,
the
9th
for
surgery,
and
so
so
we're
going
to
look
for
somebody
else
to
act
as
the
third
mentor
here,
but
rishabh
and
and
justin
would
do
it.
So
maybe
we
should
go
for
mornings,
try
to
find
two
mornings
that
work
and
that
way
we're
not
we're
not
in
convincing
inconveniencing
rashab
and
justin.
B
D
Okay
and
it's
totally
fine
for
me
to
not
break,
do
not
you
know
it's
okay
for
the
time
we
have
right
now,
if
that's
what
justin
mark
you
both
have
you're
both
comfortable
with
I,
I
can
be
it's
okay,
it's
not
like.
I
have
a
problem.
I
am
free
at
this
time,
so
it's
not
a
problem.
A
A
A
C
C
A
A
A
Let's
have
conversations
through
chat
between
now
and
then,
if
you
have
questions
that
feels
like
a
long
time,
that's
almost
a
week
for
us,
be
that
is
a
week
between
our
our
chances
to
talk
together
and
that's
awfully
long
either
that
or
or
the
rest
of
the
team
could
get
together,
friday
or
monday.
Without
me,
you
don't-
I
don't
have
to
be
here,
so
you
could
all
meet
on
monday
during
that
time
or
tuesday
during
that
time.
If
that
works
for.
D
A
Or
it
has
to
be
fixed
right
now,
oh
no!
No,
no,
you
can
you
can
just
notify
us.
You
can
just
tell
us,
that's
great,
I'm
gonna
tentatively
put
one
on
the
calendar
and
we
can
adjust
it.
So
I
don't
mean
to
make
it
seem
like
we
have
to
have
the
answer
we
don't
absolutely
all
we
need
to
do
is
get
an
answer
that
works
for
everybody,
so
I'll
put
something
on
the
calendar
and
if
that
doesn't
work
for
you,
please,
please
suggest
a
different
time.