Skip to content

Commit

Permalink
Version v0.3.88
Browse files Browse the repository at this point in the history
  • Loading branch information
seal-devops committed Nov 12, 2024
1 parent 26e829c commit 932bc25
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 4 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.3.87
0.3.88
3 changes: 3 additions & 0 deletions cmd/seal/cmd_fix.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
)

const summaryFlag = "summarize"
const SealFixModeHeader = "X-Seal-Fix-Mode"

func fixModeFromString(s string) phase.FixMode {
modes := []phase.FixMode{phase.FixModeAll, phase.FixModeRemote, phase.FixModeLocal}
Expand Down Expand Up @@ -179,6 +180,8 @@ func fixCommand() *cobra.Command {
return common.FallbackPrintableMsg(err, "failed initializing fix phase")
}

fixPhase.ArtifactServer.SetExtraHeaders([]api.StringPair{{Name: SealFixModeHeader, Value: fm}})

defer fixPhase.HideProgress() // should be gone when this is over, hide just in case

if !fixPhase.Config.UseSealedNames && len(silenceArray) > 0 {
Expand Down
16 changes: 13 additions & 3 deletions internal/api/artifact_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,14 @@ import (
)

type SealArtifactServer struct {
client http.Client
authToken string
baseUrl string
client http.Client
authToken string
baseUrl string
extraHeaders []StringPair
}

func (s *SealArtifactServer) SetExtraHeaders(headers []StringPair) {
s.extraHeaders = headers
}

func NewArtifactServer(
Expand Down Expand Up @@ -65,6 +70,11 @@ func (s SealArtifactServer) Get(uri string, params []StringPair, headers []Strin
common.Trace("sending auth header in bulk request")
}

if len(s.extraHeaders) > 0 {
headers = append(headers, s.extraHeaders...)
common.Trace("adding extra headers to request", "headers", s.extraHeaders)
}

responseData, statusCode, err := sendSealRequest[any](s.client, "GET", reqUrl, nil, headers, params)
return responseData, statusCode, err
}
Expand Down
4 changes: 4 additions & 0 deletions internal/api/artifact_server_jfrog.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ type JFrogArtifactServer struct {
authHeader StringPair
}

func (s *JFrogArtifactServer) SetExtraHeaders(headers []StringPair) {
common.Trace("Not implemented yet")
}

func NewJFrogArtifactServer(
client http.Client, project string, token string, baseUrl string) *JFrogArtifactServer {

Expand Down
44 changes: 44 additions & 0 deletions internal/api/artifact_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -263,3 +263,47 @@ func TestGetJsonBadObj(t *testing.T) {
t.Fatalf("bad err: %v", err)
}
}

func TestSetExtraHeaders(t *testing.T) {
baseurl := "http://example.com"
client := http.Client{}

server := NewArtifactServer(baseurl, "", "proj-id", client)

testHeaders := []StringPair{
{Name: "X-Custom-Header-1", Value: "Value1"},
{Name: "X-Custom-Header-2", Value: "Value2"},
}

server.SetExtraHeaders(testHeaders)

if len(server.extraHeaders) != len(testHeaders) {
t.Fatalf("expected %d headers, got %d", len(testHeaders), len(server.extraHeaders))
}

for i, header := range testHeaders {
if server.extraHeaders[i] != header {
t.Fatalf("header mismatch at index %d: expected %v, got %v", i, header, server.extraHeaders[i])
}
}

fakeRoundTripper := FakeRoundTripper{
statusCode: 200,
Validator: func(req *http.Request) {
for _, header := range testHeaders {
values := req.Header.Values(header.Name)
if len(values) == 0 || values[0] != header.Value {
t.Fatalf("header mismatch for %s: expected %s, got %v", header.Name, header.Value, values)
}
}
},
}

client.Transport = fakeRoundTripper
server.client = client

_, _, err := server.Get("dummy/uri", nil, nil)
if err != nil {
t.Fatalf("unexpected error during request: %v", err)
}
}
1 change: 1 addition & 0 deletions internal/api/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ type ArtifactServer interface {
// will convert response from json and populate input obj
// if non-pointer type is passed json marshal will return error
GetJsonObject(url string, headers []StringPair, params []StringPair, obj any) (int, error)
SetExtraHeaders(headers []StringPair)
}

type PackageQueryType int
Expand Down

0 comments on commit 932bc25

Please sign in to comment.