MCPcopy Create free account
hub / github.com/docker/secrets-engine / GetSecrets

Method GetSecrets

plugins/credentialhelper/store.go:80–128  ·  view source on GitHub ↗
(_ context.Context, pattern plugin.Pattern)

Source from the content-addressed store, hash-verified

78}
79
80func (s *credentialHelperStore) GetSecrets(_ context.Context, pattern plugin.Pattern) ([]plugin.Envelope, error) {
81 credentials, err := client.List(s.ProgramFunc)
82 if err != nil {
83 return nil, err
84 }
85
86 result := []plugin.Envelope{}
87
88 resolvedAt := time.Now()
89
90 for serverURL, username := range credentials {
91 var p plugin.ID
92 var err error
93
94 if s.rewriter != nil {
95 p, err = s.rewriter(serverURL, username)
96 } else {
97 p, err = plugin.ParseID(DefaultKeyRewriter(serverURL))
98 }
99
100 if err != nil {
101 s.Warnf("could not parse key '%s' as secrets.ID: %s", serverURL, err)
102 continue
103 }
104 if pattern.Match(p) {
105 cred, err := client.Get(s.ProgramFunc, serverURL)
106 // ignore the error if we could not fetch it from credential-helper
107 if err != nil {
108 s.Warnf("could not get matched secret key '%s' from the credential-helper: %s", serverURL, err)
109 continue
110 }
111 result = append(result, plugin.Envelope{
112 ID: p,
113 Value: []byte(cred.Secret),
114 Metadata: map[string]string{
115 "ServerURL": cred.ServerURL,
116 "Username": cred.Username,
117 },
118 Provider: "docker-credential-helper",
119 Version: "0.0.1",
120 ResolvedAt: resolvedAt,
121 })
122 }
123 }
124 if len(result) == 0 {
125 return nil, plugin.ErrNotFound
126 }
127 return result, nil
128}
129
130func (s *credentialHelperStore) Run(ctx context.Context) error {
131 <-ctx.Done()

Callers

nothing calls this directly

Calls 4

DefaultKeyRewriterFunction · 0.85
WarnfMethod · 0.65
MatchMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected