skilldrop-cli 0.16.31 → 0.16.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/skilldrop.js +133 -18
- package/contracts/skill.schema.json +3 -3
- package/package.json +1 -1
- package/packs/converters/skills/mermaid-render/manifest.json +11 -1
- package/packs/dev-team/skills/codebase-tour/evals/files/3/.github/workflows/ci.yml +2 -2
- package/packs/dev-team/skills/codebase-tour/evals/files/3/go.mod +2 -2
- package/packs/dev-team/skills/dependency-upgrade-review/SKILL.md +52 -34
- package/packs/dev-team/skills/dependency-upgrade-review/evals/evals.json +33 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/.github/workflows/ci.yml +39 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/.github/workflows/integration.yml +20 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/PR.md +39 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/go.mod +17 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/notify/client.go +35 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/payments/client.go +66 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/payments/client_integration_test.go +38 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/payments/client_test.go +53 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/payments/settle.go +30 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/pr.diff +42 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/vendor-notes/httpkit-CHANGELOG.md +43 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/.github/workflows/ci.yml +67 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/.lintwright.json +7 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/.nvmrc +1 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/PR.md +110 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/package.json +25 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/pr.diff +146 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/src/due-date.ts +16 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/src/totals.ts +11 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/tests/due-date.test.ts +17 -0
- package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/tests/totals.test.ts +12 -0
- package/packs/dev-team/skills/dependency-upgrade-review/examples/ledgerline-tidyparse.md +23 -14
- package/packs/dev-team/skills/dependency-upgrade-review/manifest.json +17 -5
- package/packs/dev-team/skills/dependency-upgrade-review/reference.md +36 -1
- package/packs/dev-team/skills/dependency-upgrade-review/scripts/upgrade_diff.py +22 -4
- package/packs/dev-team/skills/sonar-review/manifest.json +12 -0
- package/packs/infra-as-code/skills/terraform-module/manifest.json +11 -0
- package/packs/infra-as-code/skills/terraform-plan-review/manifest.json +8 -1
- package/packs/solution-architect/skills/figma-diagrams/manifest.json +12 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: integration
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "30 2 * * *"
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
integration:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
timeout-minutes: 20
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@3d1f0a9c7e5b2846f0c1a7d9e3b5f8c2a6d4e017 # v4.2.2
|
|
17
|
+
- uses: actions/setup-go@8e2c4a6f0b1d3957a2c8e4f6b0d1a3c5e7f9b204 # v5.1.0
|
|
18
|
+
with:
|
|
19
|
+
go-version: "1.23"
|
|
20
|
+
- run: go test -tags integration -timeout 10m ./...
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Bump github.com/fernwire/httpkit from 1.8.1 to 1.8.4 #412
|
|
2
|
+
|
|
3
|
+
**dependabot** wants to merge 1 commit into `main` from `dependabot/go_modules/github.com/fernwire/httpkit-1.8.4`
|
|
4
|
+
|
|
5
|
+
Bumps [github.com/fernwire/httpkit](https://github.com/fernwire/httpkit) from 1.8.1 to 1.8.4.
|
|
6
|
+
|
|
7
|
+
<details>
|
|
8
|
+
<summary>Release notes</summary>
|
|
9
|
+
<p><em>Sourced from <a href="https://github.com/fernwire/httpkit/releases">github.com/fernwire/httpkit's releases</a>.</em></p>
|
|
10
|
+
<blockquote>
|
|
11
|
+
<h2>v1.8.4</h2>
|
|
12
|
+
<ul>
|
|
13
|
+
<li>Add optional OpenTelemetry hooks via <code>WithTracer</code> (backed by the new <code>fernwire/otelshim</code> module). No behaviour change unless the option is passed.</li>
|
|
14
|
+
<li>Fix a data race in connection-pool metrics (#240).</li>
|
|
15
|
+
</ul>
|
|
16
|
+
</blockquote>
|
|
17
|
+
</details>
|
|
18
|
+
<details>
|
|
19
|
+
<summary>Commits</summary>
|
|
20
|
+
<ul>
|
|
21
|
+
<li><code>9c1e4b7</code> release v1.8.4</li>
|
|
22
|
+
<li><code>3fa02d1</code> pool: fix metrics race (#240)</li>
|
|
23
|
+
<li><code>b81d6e0</code> add WithTracer option (#238)</li>
|
|
24
|
+
<li>Additional commits viewable in <a href="https://github.com/fernwire/httpkit/compare/v1.8.1...v1.8.4">compare view</a></li>
|
|
25
|
+
</ul>
|
|
26
|
+
</details>
|
|
27
|
+
<br />
|
|
28
|
+
|
|
29
|
+
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Checks
|
|
34
|
+
|
|
35
|
+
- ci / lint — passed (41s)
|
|
36
|
+
- ci / test — passed (1m 52s)
|
|
37
|
+
- ci / build — passed (38s)
|
|
38
|
+
|
|
39
|
+
All checks have passed.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module example.internal/payments-gateway
|
|
2
|
+
|
|
3
|
+
go 1.23
|
|
4
|
+
|
|
5
|
+
require (
|
|
6
|
+
github.com/fernwire/httpkit v1.8.4
|
|
7
|
+
github.com/quillstack/zlogx v0.11.2
|
|
8
|
+
github.com/stretchr/testify v1.9.0
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
require (
|
|
12
|
+
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
13
|
+
github.com/fernwire/backoff v0.4.0 // indirect
|
|
14
|
+
github.com/fernwire/otelshim v0.1.0 // indirect
|
|
15
|
+
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
16
|
+
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
17
|
+
)
|
package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/notify/client.go
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Package notify sends merchant webhooks.
|
|
2
|
+
package notify
|
|
3
|
+
|
|
4
|
+
import (
|
|
5
|
+
"bytes"
|
|
6
|
+
"context"
|
|
7
|
+
"net/http"
|
|
8
|
+
"time"
|
|
9
|
+
|
|
10
|
+
"github.com/fernwire/httpkit"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
type Sender struct {
|
|
14
|
+
hc *httpkit.Client
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
func NewSender() *Sender {
|
|
18
|
+
return &Sender{hc: httpkit.NewClient(
|
|
19
|
+
httpkit.WithTimeout(5*time.Second),
|
|
20
|
+
httpkit.WithRetries(3),
|
|
21
|
+
)}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
func (s *Sender) Send(ctx context.Context, url string, payload []byte) error {
|
|
25
|
+
req, err := http.NewRequest(http.MethodPost, url, bytes.NewReader(payload))
|
|
26
|
+
if err != nil {
|
|
27
|
+
return err
|
|
28
|
+
}
|
|
29
|
+
req.Header.Set("Content-Type", "application/json")
|
|
30
|
+
resp, err := s.hc.Do(ctx, req)
|
|
31
|
+
if err != nil {
|
|
32
|
+
return err
|
|
33
|
+
}
|
|
34
|
+
return resp.Body.Close()
|
|
35
|
+
}
|
package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/payments/client.go
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Package payments talks to the upstream card-processing gateway.
|
|
2
|
+
package payments
|
|
3
|
+
|
|
4
|
+
import (
|
|
5
|
+
"context"
|
|
6
|
+
"encoding/json"
|
|
7
|
+
"fmt"
|
|
8
|
+
"net/http"
|
|
9
|
+
"strings"
|
|
10
|
+
|
|
11
|
+
"github.com/fernwire/httpkit"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
// doer is the subset of *httpkit.Client we use. Tests substitute a fake.
|
|
15
|
+
type doer interface {
|
|
16
|
+
Do(ctx context.Context, req *http.Request) (*http.Response, error)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Client calls the gateway's /v2/charges API.
|
|
20
|
+
type Client struct {
|
|
21
|
+
http doer
|
|
22
|
+
baseURL string
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// NewClient builds a gateway client.
|
|
26
|
+
//
|
|
27
|
+
// We deliberately do not set a timeout here: httpkit's default 30s client
|
|
28
|
+
// timeout is what protects the settlement worker from a hung gateway
|
|
29
|
+
// connection (see INC-2291).
|
|
30
|
+
func NewClient(baseURL string) *Client {
|
|
31
|
+
hc := httpkit.NewClient(
|
|
32
|
+
httpkit.WithBaseURL(baseURL),
|
|
33
|
+
httpkit.WithRetries(2),
|
|
34
|
+
)
|
|
35
|
+
return &Client{http: hc, baseURL: baseURL}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
type ChargeResult struct {
|
|
39
|
+
ID string `json:"id"`
|
|
40
|
+
Status string `json:"status"`
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Charge submits a capture for a previously authorised payment.
|
|
44
|
+
func (c *Client) Charge(ctx context.Context, authID string, amountMinor int64, idemKey string) (*ChargeResult, error) {
|
|
45
|
+
body := fmt.Sprintf(`{"authorization":%q,"amount":%d}`, authID, amountMinor)
|
|
46
|
+
req, err := http.NewRequest(http.MethodPost, c.baseURL+"/v2/charges", strings.NewReader(body))
|
|
47
|
+
if err != nil {
|
|
48
|
+
return nil, err
|
|
49
|
+
}
|
|
50
|
+
req.Header.Set("Content-Type", "application/json")
|
|
51
|
+
req.Header.Set("Idempotency-Key", idemKey)
|
|
52
|
+
|
|
53
|
+
resp, err := c.http.Do(ctx, req)
|
|
54
|
+
if err != nil {
|
|
55
|
+
return nil, fmt.Errorf("gateway charge: %w", err)
|
|
56
|
+
}
|
|
57
|
+
defer resp.Body.Close()
|
|
58
|
+
if resp.StatusCode >= 300 {
|
|
59
|
+
return nil, fmt.Errorf("gateway charge: status %d", resp.StatusCode)
|
|
60
|
+
}
|
|
61
|
+
var out ChargeResult
|
|
62
|
+
if err := json.NewDecoder(resp.Body).Decode(&out); err != nil {
|
|
63
|
+
return nil, fmt.Errorf("gateway charge: decode: %w", err)
|
|
64
|
+
}
|
|
65
|
+
return &out, nil
|
|
66
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//go:build integration
|
|
2
|
+
|
|
3
|
+
package payments
|
|
4
|
+
|
|
5
|
+
import (
|
|
6
|
+
"context"
|
|
7
|
+
"net/http"
|
|
8
|
+
"net/http/httptest"
|
|
9
|
+
"testing"
|
|
10
|
+
"time"
|
|
11
|
+
|
|
12
|
+
"github.com/stretchr/testify/require"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
// TestChargeHungGatewayTimesOut guards INC-2291: a gateway that accepts the
|
|
16
|
+
// connection and never responds must not block the settlement worker forever.
|
|
17
|
+
func TestChargeHungGatewayTimesOut(t *testing.T) {
|
|
18
|
+
block := make(chan struct{})
|
|
19
|
+
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
20
|
+
<-block
|
|
21
|
+
}))
|
|
22
|
+
defer srv.Close()
|
|
23
|
+
defer close(block)
|
|
24
|
+
|
|
25
|
+
c := NewClient(srv.URL)
|
|
26
|
+
done := make(chan error, 1)
|
|
27
|
+
go func() {
|
|
28
|
+
_, err := c.Charge(context.Background(), "auth_1", 100, "idem-hang")
|
|
29
|
+
done <- err
|
|
30
|
+
}()
|
|
31
|
+
|
|
32
|
+
select {
|
|
33
|
+
case err := <-done:
|
|
34
|
+
require.Error(t, err)
|
|
35
|
+
case <-time.After(2 * time.Minute):
|
|
36
|
+
t.Fatal("Charge did not time out against a hung gateway")
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
package payments
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"context"
|
|
5
|
+
"errors"
|
|
6
|
+
"io"
|
|
7
|
+
"net/http"
|
|
8
|
+
"strings"
|
|
9
|
+
"testing"
|
|
10
|
+
|
|
11
|
+
"github.com/stretchr/testify/require"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
type fakeDoer struct {
|
|
15
|
+
status int
|
|
16
|
+
body string
|
|
17
|
+
err error
|
|
18
|
+
got *http.Request
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
func (f *fakeDoer) Do(_ context.Context, req *http.Request) (*http.Response, error) {
|
|
22
|
+
f.got = req
|
|
23
|
+
if f.err != nil {
|
|
24
|
+
return nil, f.err
|
|
25
|
+
}
|
|
26
|
+
return &http.Response{
|
|
27
|
+
StatusCode: f.status,
|
|
28
|
+
Body: io.NopCloser(strings.NewReader(f.body)),
|
|
29
|
+
}, nil
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
func TestChargeOK(t *testing.T) {
|
|
33
|
+
fd := &fakeDoer{status: 201, body: `{"id":"ch_1","status":"captured"}`}
|
|
34
|
+
c := &Client{http: fd, baseURL: "https://gw.test"}
|
|
35
|
+
res, err := c.Charge(context.Background(), "auth_1", 1250, "idem-1")
|
|
36
|
+
require.NoError(t, err)
|
|
37
|
+
require.Equal(t, "ch_1", res.ID)
|
|
38
|
+
require.Equal(t, "idem-1", fd.got.Header.Get("Idempotency-Key"))
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
func TestChargeGatewayError(t *testing.T) {
|
|
42
|
+
fd := &fakeDoer{err: errors.New("boom")}
|
|
43
|
+
c := &Client{http: fd, baseURL: "https://gw.test"}
|
|
44
|
+
_, err := c.Charge(context.Background(), "auth_1", 1250, "idem-1")
|
|
45
|
+
require.Error(t, err)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
func TestChargeNon2xx(t *testing.T) {
|
|
49
|
+
fd := &fakeDoer{status: 502, body: ``}
|
|
50
|
+
c := &Client{http: fd, baseURL: "https://gw.test"}
|
|
51
|
+
_, err := c.Charge(context.Background(), "auth_1", 1250, "idem-1")
|
|
52
|
+
require.ErrorContains(t, err, "status 502")
|
|
53
|
+
}
|
package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/internal/payments/settle.go
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package payments
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"context"
|
|
5
|
+
|
|
6
|
+
"github.com/quillstack/zlogx"
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
// Pending is a capture waiting to be settled.
|
|
10
|
+
type Pending struct {
|
|
11
|
+
AuthID string
|
|
12
|
+
AmountMinor int64
|
|
13
|
+
IdemKey string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// SettleBatch is run by the nightly settlement worker. It processes captures
|
|
17
|
+
// one at a time, in order; a single stuck call blocks the rest of the batch.
|
|
18
|
+
func SettleBatch(c *Client, batch []Pending, log *zlogx.Logger) (settled int) {
|
|
19
|
+
for _, p := range batch {
|
|
20
|
+
// No per-call deadline: we rely on the client's own timeout.
|
|
21
|
+
res, err := c.Charge(context.Background(), p.AuthID, p.AmountMinor, p.IdemKey)
|
|
22
|
+
if err != nil {
|
|
23
|
+
log.Warn("settle failed", "auth", p.AuthID, "err", err)
|
|
24
|
+
continue
|
|
25
|
+
}
|
|
26
|
+
log.Info("settled", "auth", p.AuthID, "charge", res.ID)
|
|
27
|
+
settled++
|
|
28
|
+
}
|
|
29
|
+
return settled
|
|
30
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
diff --git a/go.mod b/go.mod
|
|
2
|
+
index 4be19a2..d07c3e1 100644
|
|
3
|
+
--- a/go.mod
|
|
4
|
+
+++ b/go.mod
|
|
5
|
+
@@ -3,14 +3,15 @@ module example.internal/payments-gateway
|
|
6
|
+
go 1.23
|
|
7
|
+
|
|
8
|
+
require (
|
|
9
|
+
- github.com/fernwire/httpkit v1.8.1
|
|
10
|
+
+ github.com/fernwire/httpkit v1.8.4
|
|
11
|
+
github.com/quillstack/zlogx v0.11.2
|
|
12
|
+
github.com/stretchr/testify v1.9.0
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
require (
|
|
16
|
+
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
17
|
+
- github.com/fernwire/backoff v0.3.0 // indirect
|
|
18
|
+
+ github.com/fernwire/backoff v0.4.0 // indirect
|
|
19
|
+
+ github.com/fernwire/otelshim v0.1.0 // indirect
|
|
20
|
+
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
21
|
+
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
22
|
+
)
|
|
23
|
+
diff --git a/go.sum b/go.sum
|
|
24
|
+
index 7a10c3f..e41b9d8 100644
|
|
25
|
+
--- a/go.sum
|
|
26
|
+
+++ b/go.sum
|
|
27
|
+
@@ -1,10 +1,12 @@
|
|
28
|
+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
29
|
+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
30
|
+
-github.com/fernwire/backoff v0.3.0 h1:Qm3kT0n1Zr8vYx2LdP4eWc7sHf9aJbN6uE5tGiKoR1s=
|
|
31
|
+
-github.com/fernwire/backoff v0.3.0/go.mod h1:Hc2pW8yTn5sLq0FvB3xJdM7eKa4rZu9gYiN1oPtE6Xw=
|
|
32
|
+
-github.com/fernwire/httpkit v1.8.1 h1:Tz4xR9cWm1bPq7Ls2nVe8KdJ3hYf0aGu6oNiE5rBtXk=
|
|
33
|
+
-github.com/fernwire/httpkit v1.8.1/go.mod h1:Lw6pD2sNx9bRe4Ty1qZa7HmKc3jUf8vGo0iEnB5tYsQ=
|
|
34
|
+
+github.com/fernwire/backoff v0.4.0 h1:Bv7nQ2xKp4cLz9Ws1mTe6RdH0yJa3fGu8oNiE5rCtWk=
|
|
35
|
+
+github.com/fernwire/backoff v0.4.0/go.mod h1:Hc2pW8yTn5sLq0FvB3xJdM7eKa4rZu9gYiN1oPtE6Xw=
|
|
36
|
+
+github.com/fernwire/httpkit v1.8.4 h1:Kp9sT3vWn2cRq6Lx1mBe7JdH4yGf0aZu5oNiE8rAtYk=
|
|
37
|
+
+github.com/fernwire/httpkit v1.8.4/go.mod h1:Rm3dF8sNx1bWe6Ty2qZa9HkKc4jUf7vGo0iEnB5tXsP=
|
|
38
|
+
+github.com/fernwire/otelshim v0.1.0 h1:Wd2mR7xKq5cLp8Vs3nTe1RfH6yJb0aGu4oNiE9rDtUk=
|
|
39
|
+
+github.com/fernwire/otelshim v0.1.0/go.mod h1:Ty5nB3sMx7bQe2Rw8qZa4HjKc1jUf6vGo9iEnC0tWsL=
|
|
40
|
+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
41
|
+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
42
|
+
github.com/quillstack/zlogx v0.11.2 h1:Jn8cV4xTq1bLm7Rs2pWe5KdF3hYg0aHu9oNiE6rBtZk=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Changelog — github.com/fernwire/httpkit
|
|
2
|
+
|
|
3
|
+
Excerpt copied from the upstream repository's CHANGELOG.md at tag v1.8.4.
|
|
4
|
+
|
|
5
|
+
## v1.8.4 — 2026-10-02
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- `WithTracer(t otelshim.Tracer)` option for OpenTelemetry spans. Pulls in
|
|
9
|
+
`github.com/fernwire/otelshim` as a dependency. No behaviour change unless
|
|
10
|
+
the option is passed. (#238)
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Data race in connection-pool metrics when `Stats()` is called concurrently
|
|
14
|
+
with in-flight requests. (#240)
|
|
15
|
+
|
|
16
|
+
## v1.8.3 — 2026-09-18
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- `NewClient` no longer applies a default 30-second `Timeout`. The zero value
|
|
20
|
+
now means **no client-level timeout**, matching `net/http.Client`. Callers
|
|
21
|
+
that relied on the old default should pass `WithTimeout(30 * time.Second)`
|
|
22
|
+
explicitly. Deadlines carried by the request `context.Context` are still
|
|
23
|
+
honoured. (#231)
|
|
24
|
+
|
|
25
|
+
We are shipping this in a patch release because the old default silently
|
|
26
|
+
cut off long-polling and streaming callers, which we consider a bug.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- `Response.Body` is now always closed when `Do` returns an error after
|
|
30
|
+
reading headers. (#229)
|
|
31
|
+
|
|
32
|
+
## v1.8.2 — 2026-08-30
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- Retry backoff is now computed by `github.com/fernwire/backoff` v0.4.0
|
|
36
|
+
(previously v0.3.0). Jitter is full-jitter instead of equal-jitter; the
|
|
37
|
+
maximum delay per attempt is unchanged at 2s. `WithRetries(n)` semantics
|
|
38
|
+
are unchanged. (#224)
|
|
39
|
+
|
|
40
|
+
## v1.8.1 — 2026-08-04
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
- `WithBaseURL` now tolerates a trailing slash. (#219)
|
package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/.github/workflows/ci.yml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
lint:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@3d1f0a9c7e5b2846f0c1a7d9e3b5f8c2a6d4e017 # v4.2.2
|
|
16
|
+
- uses: actions/setup-node@6b2e8d0f4a1c3957e2a8c4f6b0d9a1c3e5f7b8d2 # v4.1.0
|
|
17
|
+
with:
|
|
18
|
+
node-version-file: .nvmrc
|
|
19
|
+
cache: npm
|
|
20
|
+
- run: npm ci
|
|
21
|
+
- run: npm run lint
|
|
22
|
+
|
|
23
|
+
format:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@3d1f0a9c7e5b2846f0c1a7d9e3b5f8c2a6d4e017 # v4.2.2
|
|
27
|
+
- uses: actions/setup-node@6b2e8d0f4a1c3957e2a8c4f6b0d9a1c3e5f7b8d2 # v4.1.0
|
|
28
|
+
with:
|
|
29
|
+
node-version-file: .nvmrc
|
|
30
|
+
cache: npm
|
|
31
|
+
- run: npm ci
|
|
32
|
+
- run: npm run format:check
|
|
33
|
+
|
|
34
|
+
typecheck:
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@3d1f0a9c7e5b2846f0c1a7d9e3b5f8c2a6d4e017 # v4.2.2
|
|
38
|
+
- uses: actions/setup-node@6b2e8d0f4a1c3957e2a8c4f6b0d9a1c3e5f7b8d2 # v4.1.0
|
|
39
|
+
with:
|
|
40
|
+
node-version-file: .nvmrc
|
|
41
|
+
cache: npm
|
|
42
|
+
- run: npm ci
|
|
43
|
+
- run: npm run typecheck
|
|
44
|
+
|
|
45
|
+
test:
|
|
46
|
+
runs-on: ubuntu-latest
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@3d1f0a9c7e5b2846f0c1a7d9e3b5f8c2a6d4e017 # v4.2.2
|
|
49
|
+
- uses: actions/setup-node@6b2e8d0f4a1c3957e2a8c4f6b0d9a1c3e5f7b8d2 # v4.1.0
|
|
50
|
+
with:
|
|
51
|
+
node-version-file: .nvmrc
|
|
52
|
+
cache: npm
|
|
53
|
+
- run: npm ci
|
|
54
|
+
- run: npm test
|
|
55
|
+
|
|
56
|
+
build-and-smoke:
|
|
57
|
+
runs-on: ubuntu-latest
|
|
58
|
+
steps:
|
|
59
|
+
- uses: actions/checkout@3d1f0a9c7e5b2846f0c1a7d9e3b5f8c2a6d4e017 # v4.2.2
|
|
60
|
+
- uses: actions/setup-node@6b2e8d0f4a1c3957e2a8c4f6b0d9a1c3e5f7b8d2 # v4.1.0
|
|
61
|
+
with:
|
|
62
|
+
node-version-file: .nvmrc
|
|
63
|
+
cache: npm
|
|
64
|
+
- run: npm ci
|
|
65
|
+
- run: npm run build
|
|
66
|
+
# Runs the test suite against the built dist/ bundle, not src/.
|
|
67
|
+
- run: npm run test:dist
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
20.11.1
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# chore(deps): update dev dependencies (non-major) #88
|
|
2
|
+
|
|
3
|
+
**renovate** wants to merge 1 commit into `main` from `renovate/dev-dependencies-non-major`
|
|
4
|
+
|
|
5
|
+
This PR contains the following updates:
|
|
6
|
+
|
|
7
|
+
| Package | Type | Update | Change |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| bundlecrate | devDependencies | minor | `6.0.1` -> `6.1.0` |
|
|
10
|
+
| lintwright | devDependencies | minor | `4.2.0` -> `4.3.1` |
|
|
11
|
+
| prettyquill | devDependencies | patch | `3.1.2` -> `3.1.4` |
|
|
12
|
+
| tsforge-types | devDependencies | patch | `1.4.0` -> `1.4.2` |
|
|
13
|
+
| vellum-test | devDependencies | minor | `2.7.3` -> `2.8.0` |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
### Release Notes
|
|
18
|
+
|
|
19
|
+
<details>
|
|
20
|
+
<summary>bundlecrate/bundlecrate (bundlecrate)</summary>
|
|
21
|
+
|
|
22
|
+
#### v6.1.0
|
|
23
|
+
|
|
24
|
+
- **Node.js support:** minimum supported Node.js is now 18.18. Node 16 is no longer tested. (#1502)
|
|
25
|
+
- The module resolver has been extracted into its own package, `@bundlecrate/resolver-core`, which `bundlecrate` now depends on. The previous internal fallback package `bundlecrate-legacy-resolver` is no longer needed and has been dropped. No change to resolution behaviour; output is byte-identical on our fixture suite. (#1497)
|
|
26
|
+
- Incremental rebuilds are ~20% faster in watch mode. (#1489)
|
|
27
|
+
|
|
28
|
+
#### v6.0.2
|
|
29
|
+
|
|
30
|
+
- Fix source-map `sources` paths on Windows. (#1481)
|
|
31
|
+
|
|
32
|
+
</details>
|
|
33
|
+
|
|
34
|
+
<details>
|
|
35
|
+
<summary>lintwright/lintwright (lintwright)</summary>
|
|
36
|
+
|
|
37
|
+
#### v4.3.1
|
|
38
|
+
|
|
39
|
+
- Fix false positive in `no-unused-vars` for destructured catch parameters. (#902)
|
|
40
|
+
|
|
41
|
+
#### v4.3.0
|
|
42
|
+
|
|
43
|
+
- New rule `no-floating-promise`, enabled as an error in the `lintwright:strict` preset. It is **not** added to `lintwright:recommended`. (#888)
|
|
44
|
+
- `picolabel` updated to 0.9.2 for terminal colour detection fixes.
|
|
45
|
+
|
|
46
|
+
#### v4.2.1
|
|
47
|
+
|
|
48
|
+
- Docs-only release.
|
|
49
|
+
|
|
50
|
+
</details>
|
|
51
|
+
|
|
52
|
+
<details>
|
|
53
|
+
<summary>prettyquill/prettyquill (prettyquill)</summary>
|
|
54
|
+
|
|
55
|
+
#### v3.1.4
|
|
56
|
+
|
|
57
|
+
- Fix idempotency bug when formatting long ternaries inside JSX attributes. (#611)
|
|
58
|
+
|
|
59
|
+
#### v3.1.3
|
|
60
|
+
|
|
61
|
+
- Performance: cache parsed config across files. (#604)
|
|
62
|
+
|
|
63
|
+
</details>
|
|
64
|
+
|
|
65
|
+
<details>
|
|
66
|
+
<summary>tsforge/types (tsforge-types)</summary>
|
|
67
|
+
|
|
68
|
+
#### v1.4.2
|
|
69
|
+
|
|
70
|
+
- Correct return type of `DeepReadonly<T>` for tuple types. (#77)
|
|
71
|
+
|
|
72
|
+
#### v1.4.1
|
|
73
|
+
|
|
74
|
+
- Add JSDoc to `Brand<T, K>`. (#74)
|
|
75
|
+
|
|
76
|
+
</details>
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary>vellum/vellum-test (vellum-test)</summary>
|
|
80
|
+
|
|
81
|
+
#### v2.8.0
|
|
82
|
+
|
|
83
|
+
- `vt.legacyTimers()` is deprecated and now prints a warning when called. It still works and will be removed in 3.0. Use `vt.fakeTimers()`. (#455)
|
|
84
|
+
- New `expect.toSatisfyAll()` matcher. (#450)
|
|
85
|
+
|
|
86
|
+
#### v2.7.4
|
|
87
|
+
|
|
88
|
+
- Fix watch mode ignoring `.mts` files. (#447)
|
|
89
|
+
|
|
90
|
+
</details>
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### Configuration
|
|
95
|
+
|
|
96
|
+
📅 **Schedule**: Branch creation - "before 6am on monday" (UTC), Automerge - Disabled by config.
|
|
97
|
+
|
|
98
|
+
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Checks
|
|
103
|
+
|
|
104
|
+
- ci / lint — passed
|
|
105
|
+
- ci / format — passed
|
|
106
|
+
- ci / typecheck — passed
|
|
107
|
+
- ci / test — passed
|
|
108
|
+
- ci / build-and-smoke — passed
|
|
109
|
+
|
|
110
|
+
All checks have passed.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ledgerly/invoice-widgets",
|
|
3
|
+
"version": "3.12.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=20"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"lint": "lintwright . --max-warnings 0",
|
|
12
|
+
"format:check": "prettyquill --check .",
|
|
13
|
+
"typecheck": "tsc --noEmit",
|
|
14
|
+
"test": "vellum run",
|
|
15
|
+
"build": "bundlecrate src/index.ts --out dist",
|
|
16
|
+
"test:dist": "vellum run --config vellum.dist.config.js"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"bundlecrate": "6.1.0",
|
|
20
|
+
"lintwright": "4.3.1",
|
|
21
|
+
"prettyquill": "3.1.4",
|
|
22
|
+
"tsforge-types": "1.4.2",
|
|
23
|
+
"vellum-test": "2.8.0"
|
|
24
|
+
}
|
|
25
|
+
}
|