diff --git a/FlagsmithClient/Classes/Internal/Router.swift b/FlagsmithClient/Classes/Internal/Router.swift index 3fd7c85..bbdbcb8 100644 --- a/FlagsmithClient/Classes/Internal/Router.swift +++ b/FlagsmithClient/Classes/Internal/Router.swift @@ -11,6 +11,11 @@ import Foundation #endif enum Router: Sendable { + // x-release-please-start-version + private static let sdkVersion = "3.9.0" + // x-release-please-end + static let userAgent = "flagsmith-swift-ios-sdk/\(sdkVersion)" + private enum HTTPMethod: String { case get = "GET" case post = "POST" @@ -102,6 +107,7 @@ enum Router: Sendable { } request.addValue(apiKey, forHTTPHeaderField: "X-Environment-Key") request.addValue("application/json", forHTTPHeaderField: "Content-Type") + request.addValue(Router.userAgent, forHTTPHeaderField: "User-Agent") return request } diff --git a/FlagsmithClient/Classes/Internal/SSEManager.swift b/FlagsmithClient/Classes/Internal/SSEManager.swift index b760aad..1af0b1d 100644 --- a/FlagsmithClient/Classes/Internal/SSEManager.swift +++ b/FlagsmithClient/Classes/Internal/SSEManager.swift @@ -157,6 +157,7 @@ final class SSEManager: NSObject, URLSessionDataDelegate, @unchecked Sendable { request.setValue("text/event-stream, application/json; charset=utf-8", forHTTPHeaderField: "Accept") request.setValue("no-cache", forHTTPHeaderField: "Cache-Control") request.setValue("keep-alive", forHTTPHeaderField: "Connection") + request.setValue(Router.userAgent, forHTTPHeaderField: "User-Agent") completionHandler = completion dataTask = session.dataTask(with: request) diff --git a/FlagsmithClient/Tests/RouterTests.swift b/FlagsmithClient/Tests/RouterTests.swift index 5b34ec5..b4211e8 100644 --- a/FlagsmithClient/Tests/RouterTests.swift +++ b/FlagsmithClient/Tests/RouterTests.swift @@ -20,6 +20,9 @@ final class RouterTests: FlagsmithClientTestCase { XCTAssertEqual(request.url?.absoluteString, "https://edge.api.flagsmith.com/api/v1/flags/") XCTAssertTrue(request.allHTTPHeaderFields?.contains(where: { $0.key == "X-Environment-Key" }) ?? false) XCTAssertNil(request.httpBody) + // x-release-please-start-version + XCTAssertEqual(request.allHTTPHeaderFields?["User-Agent"], "flagsmith-swift-ios-sdk/3.9.0") + // x-release-please-end } func testGetIdentityRequest() throws { diff --git a/release-please-config.json b/release-please-config.json index c015c5a..6ce0bae 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -10,7 +10,9 @@ "prerelease": false, "include-component-in-tag": false, "extra-files": [ - "FlagsmithClient.podspec" + "FlagsmithClient.podspec", + "FlagsmithClient/Classes/Internal/Router.swift", + "FlagsmithClient/Tests/RouterTests.swift" ] } },