Skip to content

Final slog migration PR: test infrastructure + tools + remaining standalone files - #40727

Merged
getvictor merged 5 commits into
mainfrom
victor/40054-slog-tests-tools
Feb 28, 2026
Merged

Final slog migration PR: test infrastructure + tools + remaining standalone files#40727
getvictor merged 5 commits into
mainfrom
victor/40054-slog-tests-tools

Conversation

@getvictor

@getvictor getvictor commented Feb 27, 2026

Copy link
Copy Markdown
Member

Related issue: Resolves #40540

go-kit/log is no longer a direct dependency; moved kitlog adapter required for some 3rd party libraries into its own package

Checklist for submitter

  • Changes file added for user-visible changes in changes/, orbit/changes/ or ee/fleetd-chrome/changes.
    • Present in previous PR

Testing

  • Added/updated automated tests
  • QA'd all new/changed functionality manually

Summary by CodeRabbit

  • Chores
    • Modernized logging across the codebase: switched from legacy logging wrappers to Go's standard slog, updated adapters, tests, tools, and server components.
    • Threaded the new slog logger through test utilities and tooling; adjusted a small number of logging-related function/constructor signatures to accept the new logger type (minor compatibility updates).

@getvictor

Copy link
Copy Markdown
Member Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Feb 27, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Full review triggered.

@coderabbitai

coderabbitai Bot commented Feb 27, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The change performs a large-scale migration from the repository's custom logging wrapper to Go's standard log/slog. It replaces imports of server/platform/logging with log/slog, updates logger construction to use slog.New(...) and slog.DiscardHandler, removes legacy wrapper helper constructors, introduces a new kitlogadapter to adapt *slog.Logger to the go-kit kitlog.Logger interface, removes the old kitlog adapter, and updates many call sites and test helpers to accept and pass *slog.Logger directly. go.mod is adjusted to move github.com/go-kit/log to an indirect requirement. Several public/internal function and struct fields were updated to use *slog.Logger where applicable.

Possibly related PRs

  • PR 38751 — Implements the core migration from the go-kit/log-based adapter/wrappers to log/slog and updates many logger usages and signatures across MDM and SCEP code paths.
  • PR 39527 — Modifies the project’s logging adapter and wiring, touching adapter constructors and logger argument types that this change also replaces.
  • PR 40205 — Updates worker and queue-related signatures (e.g., NewWorker, QueueMacosSetupAssistantJob) to accept *slog.Logger directly, matching the signature changes applied here.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.89% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description is mostly complete with the related issue linked (#40540), testing checklist items marked, and key objectives noted. However, some non-critical checklist items are not explicitly addressed.
Linked Issues check ✅ Passed The PR implements the slog migration objectives from issue #40540 by replacing legacy logging infrastructure with slog across test files and tools, moving kitlog adapter to a dedicated package, and removing platform/logging dependencies.
Out of Scope Changes check ✅ Passed All code changes are directly aligned with the slog migration objectives. The modifications consistently replace the platform/logging package with slog, update test infrastructure, and consolidate the kitlog adapter into a new package without introducing unrelated changes.
Title check ✅ Passed The title clearly summarizes the main objective: completing the slog migration for test infrastructure, tools, and remaining standalone files.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch victor/40054-slog-tests-tools

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
server/worker/apple_mdm_test.go (1)

101-103: Default test logger should be discard-first.

Line 103 uses a JSON handler to os.Stdout, which can flood CI logs for this suite. Prefer slog.DiscardHandler by default and keep stdout logging as an opt-in debug toggle.

Suggested tweak
-	// nopLog := slog.New(slog.DiscardHandler)
-	// use this to debug/verify details of calls
-	slogLog := slog.New(slog.NewJSONHandler(os.Stdout, nil))
+	slogLog := slog.New(slog.DiscardHandler)
+	// use this to debug/verify details of calls:
+	// slogLog = slog.New(slog.NewJSONHandler(os.Stdout, nil))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/worker/apple_mdm_test.go` around lines 101 - 103, Change the default
test logger from writing JSON to stdout to a discard-first logger: set slogLog
to use slog.New(slog.DiscardHandler()) by default, and make the JSON stdout
handler (slog.NewJSONHandler(os.Stdout, nil)) an opt-in toggle controlled by an
environment variable or test flag (e.g., check os.Getenv("DEBUG_TEST_LOGS") or a
testing flag in TestMain and swap slogLog to the JSON handler when enabled).
Update the code that currently constructs slogLog so it references
slog.DiscardHandler, and add the small conditional around slog.NewJSONHandler to
avoid flooding CI logs while still allowing manual debug output.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@server/worker/apple_mdm_test.go`:
- Around line 101-103: Change the default test logger from writing JSON to
stdout to a discard-first logger: set slogLog to use
slog.New(slog.DiscardHandler()) by default, and make the JSON stdout handler
(slog.NewJSONHandler(os.Stdout, nil)) an opt-in toggle controlled by an
environment variable or test flag (e.g., check os.Getenv("DEBUG_TEST_LOGS") or a
testing flag in TestMain and swap slogLog to the JSON handler when enabled).
Update the code that currently constructs slogLog so it references
slog.DiscardHandler, and add the small conditional around slog.NewJSONHandler to
avoid flooding CI logs while still allowing manual debug output.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 84b9027 and 7974756.

📒 Files selected for processing (18)
  • cmd/fleetctl/fleetctl/preview.go
  • ee/server/integrationtest/condaccess/suite.go
  • ee/server/integrationtest/hostidentity/suite.go
  • ee/server/integrationtest/scim/suite.go
  • go.mod
  • server/fleet/mdm_test.go
  • server/mdm/android/service/enterprises_test.go
  • server/mdm/android/tests/testing_utils.go
  • server/service/integration_enterprise_test.go
  • server/service/integration_mdm_lifecycle_test.go
  • server/service/osquery_test.go
  • server/worker/apple_mdm_test.go
  • server/worker/db_migrations_test.go
  • server/worker/macos_setup_assistant_test.go
  • server/worker/worker_test.go
  • tools/mdm/apple/apnspush/main.go
  • tools/mdm/apple/applebmapi/main.go
  • tools/mdm/apple/setupexperience/main.go

@codecov

codecov Bot commented Feb 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.30088% with 20 lines in your changes missing coverage. Please review.
✅ Project coverage is 66.28%. Comparing base (57c4f8c) to head (6578f13).
⚠️ Report is 13 commits behind head on main.

Files with missing lines Patch % Lines
server/mdm/scep/kitlogadapter/kitlogadapter.go 70.21% 12 Missing and 2 partials ⚠️
server/mdm/scep/cmd/scepclient/scepclient.go 0.00% 2 Missing ⚠️
cmd/fleetctl/fleetctl/preview.go 66.66% 1 Missing ⚠️
pkg/mdm/mdmtest/apple.go 85.71% 1 Missing ⚠️
server/launcher/server.go 0.00% 1 Missing ⚠️
server/service/testing_client.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #40727      +/-   ##
==========================================
- Coverage   66.30%   66.28%   -0.02%     
==========================================
  Files        2468     2469       +1     
  Lines      197491   197481      -10     
  Branches     8772     8731      -41     
==========================================
- Hits       130939   130896      -43     
- Misses      54708    54740      +32     
- Partials    11844    11845       +1     
Flag Coverage Δ
backend 68.08% <82.30%> (-0.02%) ⬇️
backend-activity 87.37% <ø> (-1.25%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates remaining standalone tools and test infrastructure from the legacy server/platform/logging wrappers to log/slog, continuing the broader slog migration across the Fleet codebase.

Changes:

  • Update several Apple MDM debug tools and multiple server/worker tests to construct and pass *slog.Logger directly.
  • Update Android MDM test server utilities to use *slog.Logger with go-kit HTTP server options/error handlers.
  • Adjust go.mod to demote github.com/go-kit/log to an indirect dependency as direct usage is removed.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tools/mdm/apple/setupexperience/main.go Switch tool DB logging from platform/logging to direct slog logger.
tools/mdm/apple/applebmapi/main.go Replace platform/logging usage with slog logger for datastore creation.
tools/mdm/apple/apnspush/main.go Migrate tool logging to slog and pass *slog.Logger into NanoMDM logger adapter.
server/worker/worker_test.go Update worker tests to use slog discard logger.
server/worker/macos_setup_assistant_test.go Update worker + DEP service/client test wiring to accept *slog.Logger.
server/worker/db_migrations_test.go Use *slog.Logger directly in DB migration worker tests.
server/worker/apple_mdm_test.go Update Apple MDM worker tests to use slog handlers/loggers.
server/service/osquery_test.go Replace JSON logger construction and pass *slog.Logger into logging context.
server/service/integration_mdm_lifecycle_test.go Migrate integration test cron logger parameter to *slog.Logger.
server/service/integration_enterprise_test.go Update uninstall migration test to pass *slog.Logger.
server/mdm/android/tests/testing_utils.go Update android test server utilities to use *slog.Logger in error handling/request logging.
server/mdm/android/service/enterprises_test.go Migrate android service unit tests to pass *slog.Logger into service constructor.
server/fleet/mdm_test.go Update DEP client tests to use *slog.Logger.
go.mod Move github.com/go-kit/log to indirect requirement.
ee/server/integrationtest/scim/suite.go Construct test logger via slog-backed adapter.
ee/server/integrationtest/hostidentity/suite.go Use *slog.Logger where required and keep adapter for server test opts.
ee/server/integrationtest/condaccess/suite.go Same pattern as host identity: *slog.Logger for depot + adapter for server.
cmd/fleetctl/fleetctl/preview.go Replace legacy logger with slog in fleetctl preview starter library flow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/mdm/apple/setupexperience/main.go Outdated
Comment thread tools/mdm/apple/applebmapi/main.go Outdated
Comment thread tools/mdm/apple/apnspush/main.go Outdated
Comment thread cmd/fleetctl/fleetctl/preview.go Outdated
@getvictor getvictor changed the title slog migration: test infrastructure + tools + remaining standalone files Final slog migration: test infrastructure + tools + remaining standalone files Feb 27, 2026
@getvictor
getvictor requested a review from Copilot February 27, 2026 22:12
@getvictor

Copy link
Copy Markdown
Member Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Feb 27, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Full review triggered.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
server/service/mdm_scep.go (1)

86-91: ⚠️ Potential issue | 🟡 Minor

The logger parameter is accepted but not used.

NewSCEPService accepts a logger *slog.Logger parameter but ignores it, always initializing debugLogger with slog.DiscardHandler. This means callers cannot configure logging for the SCEP service.

🐛 Proposed fix to use the passed logger
 func NewSCEPService(ds fleet.MDMAssetRetriever, signer scepserver.CSRSignerContext, logger *slog.Logger) scepserver.Service {
+	if logger == nil {
+		logger = slog.New(slog.DiscardHandler)
+	}
 	return &service{
 		signer:      signer,
-		debugLogger: slog.New(slog.DiscardHandler),
+		debugLogger: logger,
 		ds:          ds,
 	}
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/service/mdm_scep.go` around lines 86 - 91, NewSCEPService ignores the
provided logger and always sets debugLogger to slog.New(slog.DiscardHandler);
change it to use the passed-in logger (falling back to a discard logger only if
logger is nil). In the NewSCEPService constructor, set debugLogger to the
provided logger (or to slog.New(slog.DiscardHandler) only when logger == nil)
while leaving signer and ds assignments unchanged so callers can configure SCEP
logging via the logger parameter.
🧹 Nitpick comments (4)
ee/server/integrationtest/condaccess/condaccess_test.go (1)

312-337: Optional: reuse one adapter instance instead of constructing twice.

kitlogadapter.NewLogger(s.Logger) is created at both call sites. Hoisting it once improves readability and avoids repetition.

♻️ Proposed cleanup
 func requestSCEPCertificateWithOptions(t *testing.T, s *Suite, uris []*url.URL, challenge string) (*http.Response, *scep.PKIMessage, *x509.Certificate) {
 	ctx := context.Background()
+	scepLogger := kitlogadapter.NewLogger(s.Logger)
@@
-	msg, err := scep.NewCSRRequest(csr, pkiMsgReq, scep.WithLogger(kitlogadapter.NewLogger(s.Logger)))
+	msg, err := scep.NewCSRRequest(csr, pkiMsgReq, scep.WithLogger(scepLogger))
@@
-	pkiMsgResp, err := scep.ParsePKIMessage(respBytes, scep.WithLogger(kitlogadapter.NewLogger(s.Logger)), scep.WithCACerts(msg.Recipients))
+	pkiMsgResp, err := scep.ParsePKIMessage(respBytes, scep.WithLogger(scepLogger), scep.WithCACerts(msg.Recipients))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ee/server/integrationtest/condaccess/condaccess_test.go` around lines 312 -
337, The code creates kitlogadapter.NewLogger(s.Logger) twice (used in
scep.NewCSRRequest and scep.ParsePKIMessage); hoist it into a single variable
(e.g., logger := kitlogadapter.NewLogger(s.Logger)) before creating the CSR
request and reuse that logger variable in both scep.NewCSRRequest(...) and
scep.ParsePKIMessage(...), removing the duplicated constructor to improve
readability and avoid repetition.
server/mdm/scep/kitlogadapter/kitlogadapter.go (1)

18-20: Add nil-safe logger fallback in the adapter.

NewLogger(nil) currently creates a wrapper that can panic on Log/With. A nil-safe default keeps these boundary paths robust.

♻️ Proposed hardening patch
 func NewLogger(logger *slog.Logger) *Logger {
+	if logger == nil {
+		logger = slog.New(slog.DiscardHandler)
+	}
 	return &Logger{logger: logger}
 }

 func (a *Logger) Log(keyvals ...any) error {
+	if a == nil || a.logger == nil {
+		return nil
+	}
 	if len(keyvals) == 0 {
 		return nil
 	}
@@
 	a.logger.LogAttrs(context.Background(), level, msg, attrs...)
 	return nil
 }

 func (a *Logger) With(keyvals ...any) *Logger {
+	if a == nil || a.logger == nil {
+		return NewLogger(nil)
+	}
 	return &Logger{logger: a.logger.With(keyvals...)}
 }

Also applies to: 24-27, 55-56, 60-62

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/mdm/scep/kitlogadapter/kitlogadapter.go` around lines 18 - 20,
NewLogger currently returns a Logger wrapper that will panic if passed nil; make
it nil-safe by checking the incoming logger in NewLogger and substituting a safe
default (e.g., slog.Default() or a no-op logger) when logger == nil, and ensure
Logger.Log and Logger.With also guard against a nil underlying logger by
delegating to that same safe default; update NewLogger, the Logger struct
initialization, and the implementations of Logger.Log and Logger.With to use the
fallback so calling NewLogger(nil).Log or .With cannot panic.
pkg/mdm/mdmtest/apple.go (1)

785-785: Optional cleanup: reuse one adapter instance in doSCEP.

You can create the kit logger once and pass it to both scep.NewCSRRequest and scep.ParsePKIMessage for slightly cleaner code.

♻️ Proposed refactor
-	msg, err := scep.NewCSRRequest(csr, pkiMsgReq, scep.WithLogger(kitlogadapter.NewLogger(logger)))
+	scepKitLogger := kitlogadapter.NewLogger(logger)
+	msg, err := scep.NewCSRRequest(csr, pkiMsgReq, scep.WithLogger(scepKitLogger))
 	if err != nil {
 		return nil, nil, fmt.Errorf("create CSR request: %w", err)
 	}
 	respBytes, err := client.PKIOperation(ctx, msg.Raw)
 	if err != nil {
 		return nil, nil, fmt.Errorf("do CSR request: %w", err)
 	}
-	pkiMsgResp, err := scep.ParsePKIMessage(respBytes, scep.WithLogger(kitlogadapter.NewLogger(logger)), scep.WithCACerts(msg.Recipients))
+	pkiMsgResp, err := scep.ParsePKIMessage(respBytes, scep.WithLogger(scepKitLogger), scep.WithCACerts(msg.Recipients))

Also applies to: 793-793

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/mdm/mdmtest/apple.go` at line 785, In doSCEP, create a single kitlogger
by calling kitlogadapter.NewLogger(logger) once and reuse that instance for both
scep.NewCSRRequest(...) and scep.ParsePKIMessage(...), replacing the two
separate kitlogadapter.NewLogger(logger) calls so both scep.NewCSRRequest and
scep.ParsePKIMessage receive the same logger adapter.
server/service/integration_mdm_test.go (1)

204-207: Optional: deduplicate test logger initialization.

The same env-gated logger construction logic appears three times; extracting a small helper would reduce repetition.

♻️ Optional refactor
+newTestLogger := func() *slog.Logger {
+	if os.Getenv("FLEET_INTEGRATION_TESTS_DISABLE_LOG") != "" {
+		return slog.New(slog.DiscardHandler)
+	}
+	return slog.New(slog.NewJSONHandler(os.Stdout, nil))
+}
-
-pushLog := slog.New(slog.NewJSONHandler(os.Stdout, nil))
-if os.Getenv("FLEET_INTEGRATION_TESTS_DISABLE_LOG") != "" {
-	pushLog = slog.New(slog.DiscardHandler)
-}
+pushLog := newTestLogger()
-
-wlog := slog.New(slog.NewJSONHandler(os.Stdout, nil))
-if os.Getenv("FLEET_INTEGRATION_TESTS_DISABLE_LOG") != "" {
-	wlog = slog.New(slog.DiscardHandler)
-}
+wlog := newTestLogger()
-
-serverLogger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
-if os.Getenv("FLEET_INTEGRATION_TESTS_DISABLE_LOG") != "" {
-	serverLogger = slog.New(slog.DiscardHandler)
-}
+serverLogger := newTestLogger()

Also applies to: 219-222, 280-283

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/service/integration_mdm_test.go` around lines 204 - 207, The logger
initialization for tests is duplicated; extract the env-gated logic into a small
helper (e.g., newTestLogger or initTestLogger) that returns a *slog.Logger and
encapsulates the use of slog.NewJSONHandler(os.Stdout, nil) vs
slog.DiscardHandler based on os.Getenv("FLEET_INTEGRATION_TESTS_DISABLE_LOG");
replace the three occurrences where pushLog is set (the slog.New(...) blocks
around pushLog) with calls to that helper to remove duplication while preserving
the same behavior and variable usage.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@server/service/mdm_scep.go`:
- Around line 86-91: NewSCEPService ignores the provided logger and always sets
debugLogger to slog.New(slog.DiscardHandler); change it to use the passed-in
logger (falling back to a discard logger only if logger is nil). In the
NewSCEPService constructor, set debugLogger to the provided logger (or to
slog.New(slog.DiscardHandler) only when logger == nil) while leaving signer and
ds assignments unchanged so callers can configure SCEP logging via the logger
parameter.

---

Nitpick comments:
In `@ee/server/integrationtest/condaccess/condaccess_test.go`:
- Around line 312-337: The code creates kitlogadapter.NewLogger(s.Logger) twice
(used in scep.NewCSRRequest and scep.ParsePKIMessage); hoist it into a single
variable (e.g., logger := kitlogadapter.NewLogger(s.Logger)) before creating the
CSR request and reuse that logger variable in both scep.NewCSRRequest(...) and
scep.ParsePKIMessage(...), removing the duplicated constructor to improve
readability and avoid repetition.

In `@pkg/mdm/mdmtest/apple.go`:
- Line 785: In doSCEP, create a single kitlogger by calling
kitlogadapter.NewLogger(logger) once and reuse that instance for both
scep.NewCSRRequest(...) and scep.ParsePKIMessage(...), replacing the two
separate kitlogadapter.NewLogger(logger) calls so both scep.NewCSRRequest and
scep.ParsePKIMessage receive the same logger adapter.

In `@server/mdm/scep/kitlogadapter/kitlogadapter.go`:
- Around line 18-20: NewLogger currently returns a Logger wrapper that will
panic if passed nil; make it nil-safe by checking the incoming logger in
NewLogger and substituting a safe default (e.g., slog.Default() or a no-op
logger) when logger == nil, and ensure Logger.Log and Logger.With also guard
against a nil underlying logger by delegating to that same safe default; update
NewLogger, the Logger struct initialization, and the implementations of
Logger.Log and Logger.With to use the fallback so calling NewLogger(nil).Log or
.With cannot panic.

In `@server/service/integration_mdm_test.go`:
- Around line 204-207: The logger initialization for tests is duplicated;
extract the env-gated logic into a small helper (e.g., newTestLogger or
initTestLogger) that returns a *slog.Logger and encapsulates the use of
slog.NewJSONHandler(os.Stdout, nil) vs slog.DiscardHandler based on
os.Getenv("FLEET_INTEGRATION_TESTS_DISABLE_LOG"); replace the three occurrences
where pushLog is set (the slog.New(...) blocks around pushLog) with calls to
that helper to remove duplication while preserving the same behavior and
variable usage.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 57c4f8c and 661a29e.

📒 Files selected for processing (54)
  • cmd/fleetctl/fleetctl/preview.go
  • cmd/fleetctl/fleetctl/query_test.go
  • cmd/fleetctl/fleetctl/trigger_test.go
  • cmd/fleetctl/integrationtest/gitops/gitops_enterprise_integration_test.go
  • ee/orbit/pkg/scep/scep.go
  • ee/orbit/pkg/scep/scep_test.go
  • ee/server/integrationtest/condaccess/condaccess_test.go
  • ee/server/integrationtest/condaccess/suite.go
  • ee/server/integrationtest/hostidentity/hostidentity_test.go
  • ee/server/integrationtest/hostidentity/scep_rate_limit_test.go
  • ee/server/integrationtest/hostidentity/suite.go
  • ee/server/integrationtest/scim/suite.go
  • ee/server/service/condaccess/scep.go
  • ee/server/service/hostidentity/scep.go
  • ee/server/service/mdm_external_test.go
  • ee/server/service/testing_utils.go
  • go.mod
  • pkg/mdm/mdmtest/apple.go
  • server/fleet/mdm_test.go
  • server/launcher/server.go
  • server/mdm/android/service/enterprises_test.go
  • server/mdm/android/tests/testing_utils.go
  • server/mdm/scep/cmd/scepclient/scepclient.go
  • server/mdm/scep/kitlogadapter/kitlogadapter.go
  • server/mdm/scep/kitlogadapter/kitlogadapter_test.go
  • server/mdm/scep/server/service.go
  • server/mdm/scep/server/transport.go
  • server/platform/logging/kitlog_adapter.go
  • server/platform/logging/kitlog_adapter_test.go
  • server/platform/logging/logging.go
  • server/service/integration_enterprise_test.go
  • server/service/integration_install_test.go
  • server/service/integration_live_queries_test.go
  • server/service/integration_logger_test.go
  • server/service/integration_mdm_ddm_test.go
  • server/service/integration_mdm_lifecycle_test.go
  • server/service/integration_mdm_profiles_test.go
  • server/service/integration_mdm_test.go
  • server/service/integration_smtp_test.go
  • server/service/integration_sso_test.go
  • server/service/integrationtest/android/suite.go
  • server/service/integrationtest/scep_server/scep.go
  • server/service/integrationtest/suite.go
  • server/service/mdm_scep.go
  • server/service/osquery_test.go
  • server/service/testing_client.go
  • server/service/testing_utils.go
  • server/worker/apple_mdm_test.go
  • server/worker/db_migrations_test.go
  • server/worker/macos_setup_assistant_test.go
  • server/worker/worker_test.go
  • tools/mdm/apple/apnspush/main.go
  • tools/mdm/apple/applebmapi/main.go
  • tools/mdm/apple/setupexperience/main.go
💤 Files with no reviewable changes (3)
  • server/platform/logging/logging.go
  • server/platform/logging/kitlog_adapter.go
  • server/platform/logging/kitlog_adapter_test.go

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 54 out of 54 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread server/mdm/scep/kitlogadapter/kitlogadapter.go
Comment thread server/mdm/scep/kitlogadapter/kitlogadapter_test.go
Comment thread server/service/osquery_test.go
@getvictor getvictor changed the title Final slog migration: test infrastructure + tools + remaining standalone files Final slog migration PR: test infrastructure + tools + remaining standalone files Feb 27, 2026
@getvictor
getvictor marked this pull request as ready for review February 27, 2026 22:47
@getvictor
getvictor requested a review from a team as a code owner February 27, 2026 22:47

@ksykulev ksykulev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.
kitlogadapter +1

@getvictor
getvictor merged commit 62186cb into main Feb 28, 2026
58 checks passed
@getvictor
getvictor deleted the victor/40054-slog-tests-tools branch February 28, 2026 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

slog migration (3)

3 participants