Skip to content

Commit 36ae755

Browse files
Copilotchabiss
andcommitted
Improve push failure error message for package ID scope mismatch
Agent-Logs-Url: https://github.com/NuGet/NuGetGallery/sessions/aa085293-31cc-41ec-b433-e820261dd577 Co-authored-by: chabiss <[email protected]>
1 parent a23c1a0 commit 36ae755

3 files changed

Lines changed: 9 additions & 2 deletions

File tree

src/NuGetGallery/Controllers/ApiController.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1227,7 +1227,11 @@ private HttpStatusCodeWithBodyResult GetHttpResultFromFailedApiScopeEvaluationHe
12271227
}
12281228

12291229
string message;
1230-
if (result.PermissionsCheckResult == PermissionsCheckResult.Allowed && !result.IsOwnerConfirmed)
1230+
if (!result.ScopesAreValid)
1231+
{
1232+
message = Strings.ApiKeyNotAuthorized_PackageIdScopeMismatch;
1233+
}
1234+
else if (result.PermissionsCheckResult == PermissionsCheckResult.Allowed && !result.IsOwnerConfirmed)
12311235
{
12321236
message = Strings.ApiKeyOwnerUnconfirmed;
12331237
}

src/NuGetGallery/Strings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@
138138
<data name="ApiKeyNotAuthorized" xml:space="preserve">
139139
<value>The specified API key is invalid, has expired, or does not have permission to access the specified package.</value>
140140
</data>
141+
<data name="ApiKeyNotAuthorized_PackageIdScopeMismatch" xml:space="preserve">
142+
<value>The specified API key does not have permission to push to this package. The API key may have a package ID scope that does not include this package ID.</value>
143+
</data>
141144
<data name="PackageExistsAndCannotBeModified" xml:space="preserve">
142145
<value>A package with ID '{0}' and version '{1}' already exists and cannot be modified.</value>
143146
</data>

tests/NuGetGallery.Facts/Controllers/ApiControllerFacts.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public static IEnumerable<object[]> InvalidScopes_Data
205205
{
206206
get
207207
{
208-
yield return MemberDataHelper.AsData(new ApiScopeEvaluationResult(null, PermissionsCheckResult.Unknown, scopesAreValid: false), HttpStatusCode.Forbidden, Strings.ApiKeyNotAuthorized);
208+
yield return MemberDataHelper.AsData(new ApiScopeEvaluationResult(null, PermissionsCheckResult.Unknown, scopesAreValid: false), HttpStatusCode.Forbidden, Strings.ApiKeyNotAuthorized_PackageIdScopeMismatch);
209209

210210
foreach (var result in Enum.GetValues(typeof(PermissionsCheckResult)).Cast<PermissionsCheckResult>())
211211
{

0 commit comments

Comments
 (0)