Compare commits

..

No commits in common. "2bcd7c6585690a2dd416c53b94b33565113e7081" and "762bf756aaed6ab2a490f59c834d0a93e47993b5" have entirely different histories.

5 changed files with 26 additions and 22 deletions

View File

@ -299,18 +299,15 @@ jobs:
test-output:
runs-on: ubuntu-latest
steps:
# Download the action at the current ref
# Clone this repo
- name: Checkout
uses: actions/checkout@v4.1.6
with:
path: actions-checkout
# Basic checkout using git
- name: Checkout basic
id: checkout
uses: ./actions-checkout
uses: ./
with:
path: cloned-using-local-action
ref: test-data/v2/basic
# Verify output
@ -328,3 +325,7 @@ jobs:
echo "Expected commit to be 82f71901cf8c021332310dcc8cdba84c4193ff5d"
exit 1
fi
# needed to make checkout post cleanup succeed
- name: Fix Checkout
uses: actions/checkout@v4.1.6

View File

@ -17,7 +17,7 @@ fi
echo "Testing persisted credential"
pushd ./submodules-recursive/submodule-level-1/submodule-level-2
git config --local --name-only --get-regexp '^includeIf\.' && git fetch
git config --local --name-only --get-regexp http.+extraheader && git fetch
if [ "$?" != "0" ]; then
echo "Failed to validate persisted credential"
popd

View File

@ -17,7 +17,7 @@ fi
echo "Testing persisted credential"
pushd ./submodules-true/submodule-level-1
git config --local --name-only --get-regexp '^includeIf\.' && git fetch
git config --local --name-only --get-regexp http.+extraheader && git fetch
if [ "$?" != "0" ]; then
echo "Failed to validate persisted credential"
popd

14
dist/index.js vendored
View File

@ -289,15 +289,15 @@ class GitAuthHelper {
// For each submodule, configure includeIf entries pointing to the shared credentials file.
// Configure both host and container paths to support Docker container actions.
for (const configPath of configPaths) {
// Submodule Git directory
let submoduleGitDir = path.dirname(configPath); // The config file is at .git/modules/submodule-name/config
submoduleGitDir = submoduleGitDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
// The config file is at .git/modules/submodule-name/config
let submoduleConfigDir = path.dirname(configPath);
submoduleConfigDir = submoduleConfigDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
// Configure host includeIf
yield this.git.config(`includeIf.gitdir:${submoduleGitDir}.path`, credentialsConfigPath, false, false, configPath);
yield this.git.config(`includeIf.gitdir:${submoduleConfigDir}.path`, credentialsConfigPath, false, false, configPath);
// Configure container includeIf
let relativeSubmoduleGitDir = path.relative(githubWorkspace, submoduleGitDir);
relativeSubmoduleGitDir = relativeSubmoduleGitDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
const containerSubmoduleGitDir = path.posix.join('/github/workspace', relativeSubmoduleGitDir);
let relativeSubmoduleConfigDir = path.relative(githubWorkspace, submoduleConfigDir);
relativeSubmoduleConfigDir = relativeSubmoduleConfigDir.replace(/\\/g, '/'); // Use forward slashes, even on Windows
const containerSubmoduleGitDir = path.posix.join('/github/workspace', relativeSubmoduleConfigDir);
yield this.git.config(`includeIf.gitdir:${containerSubmoduleGitDir}.path`, containerCredentialsPath, false, false, configPath);
}
if (this.settings.sshKey) {

View File

@ -205,13 +205,13 @@ class GitAuthHelper {
// For each submodule, configure includeIf entries pointing to the shared credentials file.
// Configure both host and container paths to support Docker container actions.
for (const configPath of configPaths) {
// Submodule Git directory
let submoduleGitDir = path.dirname(configPath) // The config file is at .git/modules/submodule-name/config
submoduleGitDir = submoduleGitDir.replace(/\\/g, '/') // Use forward slashes, even on Windows
// The config file is at .git/modules/submodule-name/config
let submoduleConfigDir = path.dirname(configPath)
submoduleConfigDir = submoduleConfigDir.replace(/\\/g, '/') // Use forward slashes, even on Windows
// Configure host includeIf
await this.git.config(
`includeIf.gitdir:${submoduleGitDir}.path`,
`includeIf.gitdir:${submoduleConfigDir}.path`,
credentialsConfigPath,
false,
false,
@ -219,14 +219,17 @@ class GitAuthHelper {
)
// Configure container includeIf
let relativeSubmoduleGitDir = path.relative(
let relativeSubmoduleConfigDir = path.relative(
githubWorkspace,
submoduleGitDir
submoduleConfigDir
)
relativeSubmoduleGitDir = relativeSubmoduleGitDir.replace(/\\/g, '/') // Use forward slashes, even on Windows
relativeSubmoduleConfigDir = relativeSubmoduleConfigDir.replace(
/\\/g,
'/'
) // Use forward slashes, even on Windows
const containerSubmoduleGitDir = path.posix.join(
'/github/workspace',
relativeSubmoduleGitDir
relativeSubmoduleConfigDir
)
await this.git.config(
`includeIf.gitdir:${containerSubmoduleGitDir}.path`,