Compare commits

..

1 Commits

Author SHA1 Message Date
Drew Ballance
c400e00279
Merge 8461cead75 into 0c366fd6a8 2026-03-25 12:54:58 -05:00
2 changed files with 15 additions and 22 deletions

View File

@ -22,11 +22,6 @@ let settings: IGitSourceSettings
let sshPath: string
let githubServerUrl: string
// Helper function to normalize path separators to forward slashes
function convertBackslashes(file: string): string {
return file.replace(/\\/g, '/')
}
describe('git-auth-helper tests', () => {
beforeAll(async () => {
// SSH
@ -266,8 +261,7 @@ describe('git-auth-helper tests', () => {
await fs.promises.symlink(workspace, symlinkPath)
// Make git appear to be operating from the symlink path
const mockGetWorkingDirectory = git.getWorkingDirectory as jest.Mock
mockGetWorkingDirectory.mockReturnValue(symlinkPath)
;(git.getWorkingDirectory as jest.Mock).mockReturnValue(symlinkPath)
process.env['GITHUB_WORKSPACE'] = symlinkPath
const authHelper = gitAuthHelper.createAuthHelper(git, settings)
@ -279,10 +273,10 @@ describe('git-auth-helper tests', () => {
const localConfigContent = (
await fs.promises.readFile(localGitConfigPath)
).toString()
const realGitDir = convertBackslashes(
const realGitDir = (
await fs.promises.realpath(path.join(symlinkPath, '.git'))
)
const symlinkGitDir = convertBackslashes(path.join(symlinkPath, '.git'))
).replace(/\\/g, '/')
const symlinkGitDir = path.join(symlinkPath, '.git').replace(/\\/g, '/')
expect(realGitDir).not.toBe(symlinkGitDir) // sanity check: paths differ
expect(
@ -301,11 +295,10 @@ describe('git-auth-helper tests', () => {
// Arrange
await setup(configureAuth_fallsBackWhenRealpathSyncFails)
// Use a nonexistent path so realpathSync throws ENOENT naturally,
// Use a non-existent path so realpathSync throws ENOENT naturally,
// exercising the catch fallback in configureToken()
const nonexistentPath = path.join(runnerTemp, 'does-not-exist')
const mockGetWorkingDirectory = git.getWorkingDirectory as jest.Mock
mockGetWorkingDirectory.mockReturnValue(nonexistentPath)
;(git.getWorkingDirectory as jest.Mock).mockReturnValue(nonexistentPath)
const authHelper = gitAuthHelper.createAuthHelper(git, settings)
@ -316,9 +309,9 @@ describe('git-auth-helper tests', () => {
const localConfigContent = (
await fs.promises.readFile(localGitConfigPath)
).toString()
const fallbackGitDir = convertBackslashes(
path.join(nonexistentPath, '.git')
)
const fallbackGitDir = path
.join(nonexistentPath, '.git')
.replace(/\\/g, '/')
expect(
localConfigContent.indexOf(`includeIf.gitdir:${fallbackGitDir}.path`)
).toBeGreaterThanOrEqual(0)

View File

@ -8,9 +8,9 @@ import * as path from 'path'
import * as regexpHelper from './regexp-helper'
import * as stateHelper from './state-helper'
import * as urlHelper from './url-helper'
import {v4 as uuid} from 'uuid'
import {IGitCommandManager} from './git-command-manager'
import {IGitSourceSettings} from './git-source-settings'
import { v4 as uuid } from 'uuid'
import { IGitCommandManager } from './git-command-manager'
import { IGitSourceSettings } from './git-source-settings'
const IS_WINDOWS = process.platform === 'win32'
const SSH_COMMAND_KEY = 'core.sshCommand'
@ -92,7 +92,7 @@ class GitAuthHelper {
assert.ok(runnerTemp, 'RUNNER_TEMP is not defined')
const uniqueId = uuid()
this.temporaryHomePath = path.join(runnerTemp, uniqueId)
await fs.promises.mkdir(this.temporaryHomePath, {recursive: true})
await fs.promises.mkdir(this.temporaryHomePath, { recursive: true })
// Copy the global git config
const gitConfigPath = path.join(
@ -258,11 +258,11 @@ class GitAuthHelper {
const uniqueId = uuid()
this.sshKeyPath = path.join(runnerTemp, uniqueId)
stateHelper.setSshKeyPath(this.sshKeyPath)
await fs.promises.mkdir(runnerTemp, {recursive: true})
await fs.promises.mkdir(runnerTemp, { recursive: true })
await fs.promises.writeFile(
this.sshKeyPath,
this.settings.sshKey.trim() + '\n',
{mode: 0o600}
{ mode: 0o600 }
)
// Remove inherited permissions on Windows