mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 10:24:20 +08:00 
			
		
		
		
	Fix submodule git directory paths for includeIf
This commit is contained in:
		
							parent
							
								
									0f2eb6b146
								
							
						
					
					
						commit
						96c6589494
					
				
							
								
								
									
										15
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -289,16 +289,15 @@ class GitAuthHelper { | |||||||
|                 // For each submodule, configure includeIf entries pointing to the shared credentials file.
 |                 // For each submodule, configure includeIf entries pointing to the shared credentials file.
 | ||||||
|                 // Configure both host and container paths to support Docker container actions.
 |                 // Configure both host and container paths to support Docker container actions.
 | ||||||
|                 for (const configPath of configPaths) { |                 for (const configPath of configPaths) { | ||||||
|                     // Submodule path
 |                     // The config file is at .git/modules/submodule-name/config
 | ||||||
|                     const submodulePath = path.dirname(path.dirname(configPath)); |                     let submoduleConfigDir = path.dirname(configPath); | ||||||
|  |                     submoduleConfigDir = submoduleConfigDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
 | ||||||
|                     // Configure host includeIf
 |                     // Configure host includeIf
 | ||||||
|                     let submoduleGitDir = path.join(submodulePath, '.git'); |                     yield this.git.config(`includeIf.gitdir:${submoduleConfigDir}.path`, credentialsConfigPath, false, false, configPath); | ||||||
|                     submoduleGitDir = submoduleGitDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
 |  | ||||||
|                     yield this.git.config(`includeIf.gitdir:${submoduleGitDir}.path`, credentialsConfigPath, false, false, configPath); |  | ||||||
|                     // Configure container includeIf
 |                     // Configure container includeIf
 | ||||||
|                     let submoduleRelativePath = path.relative(workingDirectory, submodulePath); |                     let relativeSubmoduleConfigDir = path.relative(githubWorkspace, submoduleConfigDir); | ||||||
|                     submoduleRelativePath = submoduleRelativePath.replace(/\\/g, '/'); // Use forward slashes, even on Windows
 |                     relativeSubmoduleConfigDir = relativeSubmoduleConfigDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
 | ||||||
|                     const containerSubmoduleGitDir = path.posix.join(containerRepoPath, submoduleRelativePath, '.git'); |                     const containerSubmoduleGitDir = path.posix.join('/github/workspace', relativeSubmoduleConfigDir); | ||||||
|                     yield this.git.config(`includeIf.gitdir:${containerSubmoduleGitDir}.path`, containerCredentialsPath, false, false, configPath); |                     yield this.git.config(`includeIf.gitdir:${containerSubmoduleGitDir}.path`, containerCredentialsPath, false, false, configPath); | ||||||
|                 } |                 } | ||||||
|                 if (this.settings.sshKey) { |                 if (this.settings.sshKey) { | ||||||
|  | |||||||
| @ -205,14 +205,13 @@ class GitAuthHelper { | |||||||
|       // For each submodule, configure includeIf entries pointing to the shared credentials file.
 |       // For each submodule, configure includeIf entries pointing to the shared credentials file.
 | ||||||
|       // Configure both host and container paths to support Docker container actions.
 |       // Configure both host and container paths to support Docker container actions.
 | ||||||
|       for (const configPath of configPaths) { |       for (const configPath of configPaths) { | ||||||
|         // Submodule path
 |         // The config file is at .git/modules/submodule-name/config
 | ||||||
|         const submodulePath = path.dirname(path.dirname(configPath)) |         let submoduleConfigDir = path.dirname(configPath) | ||||||
|  |         submoduleConfigDir = submoduleConfigDir.replace(/\\/g, '/') // Use forward slashes, even on Windows
 | ||||||
| 
 | 
 | ||||||
|         // Configure host includeIf
 |         // Configure host includeIf
 | ||||||
|         let submoduleGitDir = path.join(submodulePath, '.git') |  | ||||||
|         submoduleGitDir = submoduleGitDir.replace(/\\/g, '/') // Use forward slashes, even on Windows
 |  | ||||||
|         await this.git.config( |         await this.git.config( | ||||||
|           `includeIf.gitdir:${submoduleGitDir}.path`, |           `includeIf.gitdir:${submoduleConfigDir}.path`, | ||||||
|           credentialsConfigPath, |           credentialsConfigPath, | ||||||
|           false, |           false, | ||||||
|           false, |           false, | ||||||
| @ -220,15 +219,11 @@ class GitAuthHelper { | |||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         // Configure container includeIf
 |         // Configure container includeIf
 | ||||||
|         let submoduleRelativePath = path.relative( |         let relativeSubmoduleConfigDir = path.relative(githubWorkspace, submoduleConfigDir) | ||||||
|           workingDirectory, |         relativeSubmoduleConfigDir = relativeSubmoduleConfigDir.replace(/\\/g, '/') // Use forward slashes, even on Windows
 | ||||||
|           submodulePath |  | ||||||
|         ) |  | ||||||
|         submoduleRelativePath = submoduleRelativePath.replace(/\\/g, '/') // Use forward slashes, even on Windows
 |  | ||||||
|         const containerSubmoduleGitDir = path.posix.join( |         const containerSubmoduleGitDir = path.posix.join( | ||||||
|           containerRepoPath, |           '/github/workspace', | ||||||
|           submoduleRelativePath, |           relativeSubmoduleConfigDir | ||||||
|           '.git' |  | ||||||
|         ) |         ) | ||||||
|         await this.git.config( |         await this.git.config( | ||||||
|           `includeIf.gitdir:${containerSubmoduleGitDir}.path`, |           `includeIf.gitdir:${containerSubmoduleGitDir}.path`, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 eric sciple
						eric sciple