diff --git a/Tools/Sources/Commands/CI/CI.swift b/Tools/Sources/Commands/CI/CI.swift index ff5a0b048..952921004 100644 --- a/Tools/Sources/Commands/CI/CI.swift +++ b/Tools/Sources/Commands/CI/CI.swift @@ -128,8 +128,13 @@ struct CI: ParsableCommand { // MARK: - Git static func gitConfigureGlobals() async throws { + guard let apiToken = ProcessInfo.processInfo.environment["GITHUB_TOKEN"], !apiToken.isEmpty else { + throw ValidationError("GITHUB_TOKEN environment variable is not set.") + } + try await CI.run(.name("git"), ["config", "--global", "user.name", "Element CI"]) try await CI.run(.name("git"), ["config", "--global", "user.email", "ci@element.io"]) + try await CI.run(.name("git"), ["config", "--global", "http.extraHeader", "Authorization: Bearer \(apiToken)"]) } static func gitRepositoryURL() async throws -> String { @@ -145,20 +150,15 @@ struct CI: ParsableCommand { .replacingOccurrences(of: ".git", with: "") .trimmingCharacters(in: .whitespacesAndNewlines) } - - static func gitPush(tagName: String? = nil) async throws { - guard let apiToken = ProcessInfo.processInfo.environment["GITHUB_TOKEN"], !apiToken.isEmpty - else { - throw ValidationError("GITHUB_TOKEN environment variable is not set.") - } + static func gitPush(tagName: String? = nil) async throws { let repoURL = try await CI.gitRepositoryURL() if let tagName { try await CI.run(.name("git"), ["tag", tagName]) - try await CI.run(.name("git"), ["push", "https://\(apiToken)@\(repoURL)", tagName]) + try await CI.run(.name("git"), ["push", "https://\(repoURL)", tagName]) } else { - try await CI.run(.name("git"), ["push", "https://\(apiToken)@\(repoURL)"]) + try await CI.run(.name("git"), ["push", "https://\(repoURL)"]) } } }