stablyai/orca · error · Error
repo is required
Error message
repo is required
What it means
Thrown by createDraftRelease when the repo parameter is falsy. repo is required because it forms the GitHub API URL path for every request (create-draft-release.mjs:121-123). In main(), it defaults to process.env.GITHUB_REPOSITORY or 'stablyai/orca', so this fires only when calling createDraftRelease directly without repo.
Source
Thrown at config/scripts/create-draft-release.mjs:122
}
const availableLength = maxLength - TRUNCATION_NOTICE.length
if (availableLength <= 0) {
throw new Error('Release truncation notice is longer than the maximum release body length')
}
return `${body.slice(0, availableLength).trimEnd()}${TRUNCATION_NOTICE}`
}
export async function createDraftRelease({
repo,
tag,
token,
fetchImpl = fetch,
log = console.log
}) {
if (!repo) {
throw new Error('repo is required')
}
if (!tag) {
throw new Error('tag is required')
}
if (!token) {
throw new Error('token is required')
}
const previousTag = latestPreviousPublishedDesktopReleaseTag(
await fetchRepoReleases(repo, token, fetchImpl),
tag
)
const generateNotesBody = {
tag_name: tag,
target_commitish: tag,
...(previousTag ? { previous_tag_name: previousTag } : {})
}
View on GitHub (pinned to 1136503c6a)
Solutions
- Pass a non-empty repo string in 'owner/name' form, e.g. createDraftRelease({ repo: 'owner/repo', ... }).
- If using main(), ensure GITHUB_REPOSITORY is set, or rely on the 'stablyai/orca' default.
- Validate the params object has repo before calling.
Example fix
// before
await createDraftRelease({ tag: 'v1.0.0', token: tok })
// after
await createDraftRelease({ repo: 'owner/repo', tag: 'v1.0.0', token: tok }) Defensive patterns
Strategy: validation
Validate before calling
function validateCreateDraftReleaseParams({ repo, tag, token }) {
if (!repo) throw new Error('repo is required (owner/name)')
if (!tag) throw new Error('tag is required')
if (!token) throw new Error('token is required')
}
validateCreateDraftReleaseParams(params) Prevention
- Construct the params object from a single config source and validate all three fields before calling.
- Default repo to process.env.GITHUB_REPOSITORY in wrapper scripts.
When it happens
Trigger: Calling createDraftRelease({}) or createDraftRelease({ tag, token }) from a script/test that omits repo; GITHUB_REPOSITORY env explicitly set to empty string and the default overridden.
Common situations: Programmatic use of createDraftRelease in a custom release workflow; a fork that removed the default repo; a test that constructs params from a partial config object.
Related errors
- token is required
- GitHub request failed ${res.status} ${res.statusText}: ${bod
- GitHub releases response page ${page} for ${repo} was not an
- tag is required
- --release requires a version argument, e.g. --release 1.4.16
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/ab2b88c6e5b8e612.
Report an issue: GitHub.