-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
determine default branch #278
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6114,6 +6114,12 @@ function getSource(settings) { | |
// Repository URL | ||
core.info(`Syncing repository: ${settings.repositoryOwner}/${settings.repositoryName}`); | ||
const repositoryUrl = urlHelper.getFetchUrl(settings); | ||
// Determine the default branch | ||
if (!settings.ref && !settings.commit) { | ||
core.startGroup('Determining the default branch'); | ||
settings.ref = yield githubApiHelper.getDefaultBranch(settings.authToken, settings.repositoryOwner, settings.repositoryName); | ||
core.endGroup(); | ||
} | ||
// Remove conflicting file path | ||
if (fsHelper.fileExistsSync(settings.repositoryPath)) { | ||
yield io.rmRF(settings.repositoryPath); | ||
|
@@ -9569,6 +9575,31 @@ function downloadRepository(authToken, owner, repo, ref, commit, repositoryPath) | |
}); | ||
} | ||
exports.downloadRepository = downloadRepository; | ||
/** | ||
* Looks up the default branch name | ||
*/ | ||
function getDefaultBranch(authToken, owner, repo) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
return yield retryHelper.execute(() => __awaiter(this, void 0, void 0, function* () { | ||
core.info('Retrieving the default branch name'); | ||
const octokit = new github.GitHub(authToken); | ||
const response = yield octokit.repos.get({ owner, repo }); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @ericsciple We are using this action on our repository's There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the heads up! And sorry for the disruption :( I will look into the scenario shortly... There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks! Fortunately was an easy fix on our end :) Is it even possible to change the wiki default branch name? If not, maybe for those repositories the old hard-coded "logic" could be maintained for now. |
||
if (response.status != 200) { | ||
throw new Error(`Unexpected response from GitHub API. Status: ${response.status}, Data: ${response.data}`); | ||
} | ||
// Print the default branch | ||
let result = response.data.default_branch; | ||
core.info(`Default branch '${result}'`); | ||
assert.ok(result, 'default_branch cannot be empty'); | ||
// Prefix with 'refs/heads' | ||
if (!result.startsWith('refs/')) { | ||
result = `refs/heads/${result}`; | ||
} | ||
return result; | ||
})); | ||
}); | ||
} | ||
exports.getDefaultBranch = getDefaultBranch; | ||
function downloadArchive(authToken, owner, repo, ref, commit) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const octokit = new github.GitHub(authToken); | ||
|
@@ -14471,9 +14502,6 @@ function getInputs() { | |
result.ref = `refs/heads/${result.ref}`; | ||
} | ||
} | ||
if (!result.ref && !result.commit) { | ||
result.ref = 'refs/heads/master'; | ||
} | ||
} | ||
// SHA? | ||
else if (result.ref.match(/^[0-9a-fA-F]{40}$/)) { | ||
|
@@ -14508,7 +14536,7 @@ function getInputs() { | |
core.debug(`submodules = ${result.submodules}`); | ||
core.debug(`recursive submodules = ${result.nestedSubmodules}`); | ||
// Auth token | ||
result.authToken = core.getInput('token'); | ||
result.authToken = core.getInput('token', { required: true }); | ||
// SSH | ||
result.sshKey = core.getInput('ssh-key'); | ||
result.sshKnownHosts = core.getInput('ssh-known-hosts'); | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -68,10 +68,6 @@ export function getInputs(): IGitSourceSettings { | |
result.ref = `refs/heads/${result.ref}` | ||
} | ||
} | ||
|
||
if (!result.ref && !result.commit) { | ||
result.ref = 'refs/heads/master' | ||
} | ||
} | ||
// SHA? | ||
else if (result.ref.match(/^[0-9a-fA-F]{40}$/)) { | ||
|
@@ -110,7 +106,7 @@ export function getInputs(): IGitSourceSettings { | |
core.debug(`recursive submodules = ${result.nestedSubmodules}`) | ||
|
||
// Auth token | ||
result.authToken = core.getInput('token') | ||
result.authToken = core.getInput('token', {required: true}) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't this a breaking change? Does the action need a token if checking out a public repo? If we're making this required, we should update the action.yml file with There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Today it already needs a token but fails with a bad error #221 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Generally it doesnt need to be specified, because the default value works. However we've seen cases where it's empty:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If it's empty, can I still checkout from a public repo? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No today it fails like this:
|
||
|
||
// SSH | ||
result.sshKey = core.getInput('ssh-key') | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we update this to have
required: true
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not required that the user enter a value. It has a default.