Skip to content

Commit

Permalink
Merge pull request #1550 from snyk/fix/ecr_repository_policy
Browse files Browse the repository at this point in the history
fix: ecr repo without policy was crashing the whole execution
  • Loading branch information
eliecharra authored Jun 23, 2022
2 parents e9746d8 + 39aa6d5 commit cde2d4c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pkg/remote/aws/ecr_repository_policy_enumerator.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package aws

import (
"github.com/aws/aws-sdk-go/service/ecr"
"github.com/snyk/driftctl/pkg/remote/aws/repository"
remoteerror "github.com/snyk/driftctl/pkg/remote/error"
"github.com/snyk/driftctl/pkg/resource"
Expand Down Expand Up @@ -33,6 +34,9 @@ func (e *ECRRepositoryPolicyEnumerator) Enumerate() ([]*resource.Resource, error

for _, repo := range repos {
repoOutput, err := e.repository.GetRepositoryPolicy(repo)
if _, ok := err.(*ecr.RepositoryPolicyNotFoundException); ok {
continue
}
if err != nil {
return nil, remoteerror.NewResourceListingError(err, string(e.SupportedType()))
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/remote/aws_ecr_scanner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,13 +138,17 @@ func TestECRRepositoryPolicy(t *testing.T) {
mocks: func(client *repository.MockECRRepository, alerter *mocks.AlerterInterface) {
client.On("ListAllRepositories").Return([]*ecr.Repository{
{RepositoryName: awssdk.String("test_ecr_repo_policy")},
{RepositoryName: awssdk.String("test_ecr_repo_without_policy")},
}, nil)
client.On("GetRepositoryPolicy", &ecr.Repository{
RepositoryName: awssdk.String("test_ecr_repo_policy"),
}).Return(&ecr.GetRepositoryPolicyOutput{
RegistryId: awssdk.String("1"),
RepositoryName: awssdk.String("test_ecr_repo_policy"),
}, nil)
client.On("GetRepositoryPolicy", &ecr.Repository{
RepositoryName: awssdk.String("test_ecr_repo_without_policy"),
}).Return(nil, &ecr.RepositoryPolicyNotFoundException{})
},
assertExpected: func(t *testing.T, got []*resource.Resource) {
assert.Len(t, got, 1)
Expand Down

0 comments on commit cde2d4c

Please sign in to comment.