• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stripe / smokescreen
56%

Build:
DEFAULT BRANCH: master
Repo Added 10 Nov 2020 04:12PM UTC
Token p3r3qYDPNxVPUXqvYLjFKjFquJXwV6ERu regen
Build 681 Last
Files 25
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
Sync Branches
  • master
  • acl-validate
  • allow-different-resolvers
  • allow-private-ranges-default-option
  • alternative-ip
  • anuragm/add-server-ip-headers
  • bump-goproxy
  • bump-gp-version
  • cds/bump-go-version.1
  • cds/bump-goproxy
  • cds/connection-timing
  • cds/fix-ca-tests
  • cds/fix-lookup-denials
  • cds/fix-shutdown-behavior
  • cds/fix-timeout-test
  • cds/go-1.15
  • cds/ipv4-only-lookups
  • cds/log-outbound-host
  • cds/per-conn-duration-metric
  • cds/smokescreen-metrics
  • cgnat-ssrf
  • client-timeout
  • cmoresco/bump
  • cmoresco/bump-statsd
  • cmoresco/config
  • cmoresco/conn-success
  • cmoresco/connstats
  • cmoresco/contributors
  • cmoresco/docs
  • cmoresco/docs-ip
  • cmoresco/export
  • cmoresco/hooks
  • cmoresco/interface
  • cmoresco/metrics-package
  • cmoresco/response
  • cmoresco/server
  • connect-local
  • conntrack-project-tag
  • cschen-conntrack-project-tag
  • denylist-log
  • dependabot/go_modules/github.com/sirupsen/logrus-1.9.1
  • dependabot/go_modules/golang.org/x/net-0.17.0
  • dependabot/go_modules/golang.org/x/net-0.23.0
  • dependabot/go_modules/google.golang.org/protobuf-1.33.0
  • dependabot/go_modules/gopkg.in/yaml.v2-2.2.8
  • dos-timeout
  • example-com
  • feature/AddPrometheusMetrics
  • fishdev/add-cn-metric-tags
  • flag
  • gauthamw/https-proxy
  • gauthamw/proxy-hooks
  • gauthamw/vendor-goproxy-update
  • harold/decide_interface
  • harold/goveralls-build
  • harold/mitm_support
  • harold/mitm_support_2
  • harold/update-build
  • idle-conn-fix
  • jjiang-coverage-badge
  • jjiang-goveralls
  • jjiang-test
  • jjiang/fix-hostname
  • jjiang/fix-logging-addrs
  • jjiang/more-square-brackets
  • jjiang/normalize-hosts-in-acl-validation
  • jjiang/tag-based-metrics
  • kevinv/fix-test-map-keys
  • kevinv/tag-metrics-requested-host
  • lewandowski/connect-normalization
  • lewandowski/github-actions
  • lewandowski/idna
  • lewandowski/normalization
  • lewandowski/normalize-pkg
  • lewandowski/underscores
  • lewandowski/v6
  • lewandowski/version
  • manishsb/support-custom-middleware-for-smokescreen-requests
  • mattm-15
  • mattm-lint
  • metric-sanitize
  • mitm-acl
  • non-prefix-wildcard
  • param-allow-callbacks-for-request-verification
  • private-ip
  • pspieker-add-proxy-acl-support
  • pspieker-fix-proxy-host-url-parsing
  • pspieker-gp-scatch
  • pspieker-testing-gp-changes
  • pspieker-tmp
  • ransford-dns-query-time-metric
  • ransford-mod-update
  • ransford-readme-updates
  • ransford/bump-ci
  • ransford/connect-error-metrics
  • ransford/globs
  • ransford/metrics
  • rate-limit-dos
  • refs/tags/v0.0.3
  • refs/tags/v0.0.4
  • request-timeout
  • revert-262-dos-timeout
  • revert-269-client-timeout
  • rishikej-missing-log-fields
  • rishikej-timeout-log
  • rwg/log-tcp-tuples.0
  • rwg/star.0
  • saurabhbhatia/add-reject-handler
  • saurabhbhatia/alert-autofix-1
  • saurabhbhatia/alert-autofix-2
  • saurabhbhatia/default_bypass_fix
  • saurabhbhatia/enhc-error-messages
  • saurabhbhatia/smokescreen-ctx-changes
  • saurabhbhatia/update-goproxy
  • saurabhbhatia/update-goproxy-again
  • sergeyrud-make-hostMatchesGlob-exportable
  • sergeyrud-move-custom-request-handler-after-the-main-check
  • shubh/fix-http-role-logging
  • shubh/glob-with-hostnames
  • sohamsen/fix-flaky-example.com
  • sohamsen/ipv6-embedding
  • sohamsen/metric-fix-high-cardinality
  • sohamsen/race-fix
  • stable-log-field-names
  • subtree-merge
  • test-branch
  • tunnel-limiter
  • update-docs
  • upgrade-golang
  • validate
  • xieyuxi-configurable-proxy-addrs

09 Apr 2026 08:18AM UTC coverage: 56.203% (-0.2%) from 56.415%
24180064184

push

github

web-flow
acl: pass *http.Request through Decide via DecideArgs (#286)

* acl: replace Decide(service, host, proxy) with Decide(DecideArgs)

Replace the three positional string arguments on the Decider interface with
a DecideArgs struct. This keeps the interface stable as new fields are
added — the immediate motivation is passing *http.Request so custom Decider
implementations (e.g. request-aware authorization layers) can inspect request
headers without requiring a separate interface method.

ACL.Decide itself does not inspect Req; the field is documented as existing
solely for custom implementations. Tests are updated to use the new struct
form and two previously missing proxy-host cases are added (allowed proxy +
disallowed target, wildcard proxy glob), along with a test asserting that
ACL.Decide produces identical results regardless of the Req value.

Committed-By-Agent: claude

* smokescreen: remove TestHostSquareBrackets

Go 1.21 tightened URL validation in both the HTTP client (url.Parse) and
the HTTP server (request-line parsing), causing both layers to reject
hostnames containing square brackets before the request reaches
smokescreen's handler. The test can no longer exercise smokescreen's own
host-validation logic for these inputs and is removed.

Committed-By-Agent: claude

---------

Co-authored-by: Harold Simpson <harold@stripe.com>

14 of 15 new or added lines in 2 files covered. (93.33%)

9 existing lines in 1 file now uncovered.

1812 of 3224 relevant lines covered (56.2%)

46.51 hits per line

Relevant lines Covered
Build:
Build:
3224 RELEVANT LINES 1812 COVERED LINES
46.51 HITS PER LINE
Source Files on master
  • Tree
  • List 25
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
24180064184 master acl: pass *http.Request through Decide via DecideArgs (#286) * acl: replace Decide(service, host, proxy) with Decide(DecideArgs) Replace the three positional string arguments on the Decider interface with a DecideArgs struct. This keeps the inte... push 09 Apr 2026 08:19AM UTC web-flow github
56.2
22099438009 master Implement tunnel limiting in smokescreen (#284) * Implement tunnel limiting * Change denyError to tunnelLimitError * Fix build error push 17 Feb 2026 01:00PM UTC web-flow github
56.42
20851823156 master Prevent smokescreen upstream connections to its local IPs (#282) * Prevent smokescreen upstream connections to itself * Add tests * Add test to validate no error push 09 Jan 2026 12:25PM UTC web-flow github
55.99
20331928078 master Enable ACL checking for MITM requests (#279) * Add ACL check for MITM * Remove debug logs * Fix test * Rebuild MITM request context by copying only role from existing context * Add check for sctx.Decision Co-authored-by: harold-stripe <49162... push 18 Dec 2025 09:17AM UTC web-flow github
55.52
19896156662 master Enable rate and concurrency limiting (#280) * Add rate and concurrency limiter * Add unit test * Fix review changes * Add burst rate validation * Declare all default values in config file * Update Readme * Fix import error * Move concurren... push 03 Dec 2025 01:51PM UTC web-flow github
55.53
19637750763 master Fix idle connection per host config (#278) push 24 Nov 2025 02:28PM UTC web-flow github
55.78
19060121852 master Add support for IPv6 embedding schemes in address classification (#277) This update introduces handling for various IPv6 embedding schemes, including NAT64, 6to4, and Teredo, in the address classification logic. New tests have been added to ensur... push 04 Nov 2025 06:40AM UTC web-flow github
55.86
18914777943 master Add client request timeout values (#276) push 29 Oct 2025 04:18PM UTC web-flow github
55.52
18864021082 master Add hooks to configure upstream proxy (#275) push 28 Oct 2025 04:23AM UTC web-flow github
55.58
18551629439 master Revert "Add client request body and header timeout as 10s" (#273) push 16 Oct 2025 05:49AM UTC web-flow github
55.48
See All Builds (561)
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc