@@ -477,7 +477,7 @@ func TestActionsArtifactV4DownloadArtifactCorrectRepoOwnerFound(t *testing.T) {
477477 session := loginUser (t , user .Name )
478478 token := getTokenForLoggedInUser (t , session , auth_model .AccessTokenScopeWriteRepository )
479479
480- // confirm artifacts of wrong owner or repo is not visible
480+ // confirm artifacts of correct owner and repo is visible
481481 req := NewRequestWithBody (t , "GET" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d/zip" , repo .FullName (), 22 ), nil ).
482482 AddTokenAuth (token )
483483 MakeRequest (t , req , http .StatusFound )
@@ -514,3 +514,51 @@ func TestActionsArtifactV4Delete(t *testing.T) {
514514 protojson .Unmarshal (resp .Body .Bytes (), & deleteResp )
515515 assert .True (t , deleteResp .Ok )
516516}
517+
518+ func TestActionsArtifactV4DeletePublicApi (t * testing.T ) {
519+ defer prepareTestEnvActionsArtifacts (t )()
520+
521+ repo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 4 })
522+ user := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : repo .OwnerID })
523+ session := loginUser (t , user .Name )
524+ token := getTokenForLoggedInUser (t , session , auth_model .AccessTokenScopeWriteRepository )
525+
526+ // confirm artifacts exists
527+ req := NewRequestWithBody (t , "GET" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d" , repo .FullName (), 22 ), nil ).
528+ AddTokenAuth (token )
529+ MakeRequest (t , req , http .StatusOK )
530+
531+ // delete artifact by id
532+ req = NewRequestWithBody (t , "DELETE" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d" , repo .FullName (), 22 ), nil ).
533+ AddTokenAuth (token )
534+ MakeRequest (t , req , http .StatusNoContent )
535+
536+ // confirm artifacts has been deleted
537+ req = NewRequestWithBody (t , "GET" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d" , repo .FullName (), 22 ), nil ).
538+ AddTokenAuth (token )
539+ MakeRequest (t , req , http .StatusNotFound )
540+ }
541+
542+ func TestActionsArtifactV4DeletePublicApiNotAllowedReadScope (t * testing.T ) {
543+ defer prepareTestEnvActionsArtifacts (t )()
544+
545+ repo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 4 })
546+ user := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : repo .OwnerID })
547+ session := loginUser (t , user .Name )
548+ token := getTokenForLoggedInUser (t , session , auth_model .AccessTokenScopeReadRepository )
549+
550+ // confirm artifacts exists
551+ req := NewRequestWithBody (t , "GET" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d" , repo .FullName (), 22 ), nil ).
552+ AddTokenAuth (token )
553+ MakeRequest (t , req , http .StatusOK )
554+
555+ // try delete artifact by id
556+ req = NewRequestWithBody (t , "DELETE" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d" , repo .FullName (), 22 ), nil ).
557+ AddTokenAuth (token )
558+ MakeRequest (t , req , http .StatusForbidden )
559+
560+ // confirm artifacts has not been deleted
561+ req = NewRequestWithBody (t , "GET" , fmt .Sprintf ("/api/v1/repos/%s/actions/artifacts/%d" , repo .FullName (), 22 ), nil ).
562+ AddTokenAuth (token )
563+ MakeRequest (t , req , http .StatusOK )
564+ }
0 commit comments