theonedev/onedev · error · UnauthorizedException
No permission to write code in pull request source project
Error message
No permission to write code in pull request source project
What it means
When get-pull-request is called with forWrite=true, the endpoint additionally requires the caller to have code-write permission in the pull request's source project; lacking it, the request is rejected before returning write-oriented data.
Source
Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:1017
@Path("/get-pull-request")
@GET
public Map<String, Object> getPullRequestDetail(
@QueryParam("currentProject") @NotNull String currentProjectPath,
@QueryParam("reference") @NotNull String pullRequestReference,
@QueryParam("forWrite") Boolean forWrite) {
if (SecurityUtils.getUser() == null)
throw new UnauthenticatedException();
var currentProject = getProject(currentProjectPath);
var pullRequest = getPullRequest(currentProject, pullRequestReference);
if (forWrite != null && forWrite) {
if (pullRequest.getSourceProject() == null)
throw new NotAcceptableException("Pull request source project no longer exists");
if (!SecurityUtils.canWriteCode(pullRequest.getSourceProject()))
throw new UnauthorizedException("No permission to write code in pull request source project");
}
return PullRequestHelper.getDetail(currentProject, pullRequest);
}
@Path("/get-pull-request-comments")
@GET
public List<Map<String, Object>> getPullRequestComments(
@QueryParam("currentProject") @NotNull String currentProjectPath,
@QueryParam("reference") @NotNull String pullRequestReference) {
if (SecurityUtils.getUser() == null)
throw new UnauthenticatedException();
var currentProject = getProject(currentProjectPath);
var pullRequest = getPullRequest(currentProject, pullRequestReference);
return PullRequestHelper.getComments(pullRequest);
}View on GitHub (pinned to d44925c47c)
Solutions
- Request forWrite=false if only read data is needed.
- Obtain code write permission (commit authorizations) in the source project.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:1017 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/2633985b90f0d613.
Report an issue: GitHub.