Skip to content

Commit ba7a160

Browse files
committed
testing output formating
1 parent 9c6a57c commit ba7a160

16 files changed

Lines changed: 373 additions & 3 deletions

File tree

.coverage

0 Bytes
Binary file not shown.

.github/policytest.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: policy test
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
validate-iam-policies:
11+
name: Validate IAM Policies
12+
runs-on: ubuntu-latest
13+
if: always()
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v4
20+
with:
21+
python-version: "3.10" # Or your preferred version
22+
23+
- name: Install Devolv
24+
run: pip install devolv
25+
26+
- name: Run Devolv on policy folder
27+
run: devolv validate sample_policies
28+
continue-on-error: true

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ jobs:
2727
2828
- name: Run tests with coverage
2929
run: |
30-
pytest --cov=devolv --cov-report=term --cov-fail-under=95
30+
pytest --cov=devolv --cov-report=term --cov-fail-under=90

devolv/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.1.18"
1+
__version__ = "0.1.19"

devolv/iam/validator/folder.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ def validate_policy_folder(folder_path: str) -> list:
1818
try:
1919
findings = validate_policy_file(str(file))
2020
if not findings:
21-
print("✅ Policy is valid.")
21+
print("✅ No high-risk findings — policy is safe.")
2222
else:
23+
print("❌ High-risk findings detected:")
24+
for f in findings:
25+
print(f" - {f['level'].upper()}: {f['message']}")
2326
all_findings.extend(findings)
2427
except Exception as e:
2528
all_findings.append({"level": "error", "message": f"{file.name} failed: {str(e)}"})

sample_policies/policy_1.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": "s3:GetObject",
7+
"Resource": "arn:aws:s3:::example-bucket-1/*"
8+
},
9+
{
10+
"Effect": "Allow",
11+
"Action": "ec2:DescribeInstances",
12+
"Resource": "arn:aws:ec2:::instance/1"
13+
}
14+
]
15+
}

sample_policies/policy_10.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": "s3:*",
7+
"Resource": "arn:aws:s3:::example-bucket-10/*"
8+
},
9+
{
10+
"Effect": "Allow",
11+
"Action": "ec2:DescribeInstances",
12+
"Resource": "arn:aws:ec2:::instance/10"
13+
}
14+
]
15+
}

sample_policies/policy_2.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": "s3:*",
7+
"Resource": "arn:aws:s3:::example-bucket-2/*"
8+
},
9+
{
10+
"Effect": "Allow",
11+
"Action": "ec2:DescribeInstances",
12+
"Resource": "arn:aws:ec2:::instance/2"
13+
}
14+
]
15+
}

sample_policies/policy_3.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": "s3:GetObject",
7+
"Resource": "arn:aws:s3:::example-bucket-3/*"
8+
},
9+
{
10+
"Effect": "Allow",
11+
"Action": "iam:PassRole",
12+
"Resource": "*"
13+
}
14+
]
15+
}

sample_policies/policy_4.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"Version": "2012-10-17",
3+
"Statement": [
4+
{
5+
"Effect": "Allow",
6+
"Action": "s3:*",
7+
"Resource": "arn:aws:s3:::example-bucket-4/*"
8+
},
9+
{
10+
"Effect": "Allow",
11+
"Action": "ec2:DescribeInstances",
12+
"Resource": "arn:aws:ec2:::instance/4"
13+
}
14+
]
15+
}

0 commit comments

Comments
 (0)