Skip to content

Commit 48eb48e

Browse files
authored
Merge pull request #3 from adrian207/main
feat: Implement solutions for dynamic IP management
2 parents 1251575 + f3b8962 commit 48eb48e

28 files changed

+8582
-240
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Ansible Lint Configuration
2+
# https://ansible-lint.readthedocs.io/
3+
4+
# Skip list of rules
5+
skip_list:
6+
- yaml[line-length] # Line too long
7+
- name[casing] # Name should be lowercase
8+
- risky-shell-pipe # Shell pipe used in command
9+
10+
# Exclude paths
11+
exclude_paths:
12+
- .cache/
13+
- .github/
14+
- test/
15+
- tests/
16+
17+
# Enable additional rules
18+
enable_list:
19+
- no-changed-when
20+
- no-free-form
21+
- no-relative-paths
22+
23+
# Use strict mode
24+
strict: true
25+
26+
# Verbose output
27+
verbosity: 1
28+
29+
# Colored output
30+
colored: true
31+
32+
# Offline mode
33+
offline: false
34+
35+
# Mock modules
36+
mock_modules:
37+
- docker
38+
- kubernetes
39+
40+
# Mock roles
41+
mock_roles:
42+
- role1
43+
- role2
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
# All files
7+
[*]
8+
charset = utf-8
9+
end_of_line = lf
10+
insert_final_newline = true
11+
trim_trailing_whitespace = true
12+
indent_style = space
13+
indent_size = 2
14+
15+
# YAML files
16+
[*.{yml,yaml}]
17+
indent_size = 2
18+
19+
# Terraform files
20+
[*.tf]
21+
indent_size = 2
22+
23+
# Shell scripts
24+
[*.sh]
25+
indent_size = 2
26+
27+
# JSON files
28+
[*.json]
29+
indent_size = 2
30+
31+
# Markdown files
32+
[*.md]
33+
trim_trailing_whitespace = false
34+
indent_size = 2
35+
36+
# Python files
37+
[*.py]
38+
indent_size = 4
39+
40+
# Docker files
41+
[Dockerfile*]
42+
indent_size = 4
43+
44+
# Go files
45+
[*.go]
46+
indent_size = 4
47+
indent_style = tab
48+
49+
# Makefile
50+
[Makefile]
51+
indent_style = tab
52+
53+
# Batch files
54+
[*.{bat,cmd}]
55+
end_of_line = crlf
56+
57+
# PowerShell files
58+
[*.ps1]
59+
end_of_line = crlf
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Global owners - all files require review from these users
2+
* @adrian207
3+
4+
# Terraform files require additional review
5+
/terraform/ @adrian207
6+
7+
# Security-sensitive files require extra scrutiny
8+
**/*secret* @adrian207
9+
**/*key* @adrian207
10+
**/*password* @adrian207
11+
**/*credential* @adrian207
12+
**/*token* @adrian207
13+
**/*auth* @adrian207
14+
15+
# Infrastructure configuration files
16+
/kubernetes/ @adrian207
17+
/helm/ @adrian207
18+
/argocd/ @adrian207
19+
20+
# CI/CD configuration
21+
/.github/workflows/ @adrian207
22+
/.github/ @adrian207
23+
24+
# Documentation
25+
/docs/ @adrian207
26+
*.md @adrian207
27+
28+
# Configuration files
29+
/configs/ @adrian207
30+
/ansible/ @adrian207
31+
32+
# Scripts
33+
/scripts/ @adrian207
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: "EJBCA Automated Lab Repository Rules"
2+
3+
# Rules for the main branch
4+
rules:
5+
- name: "Main branch protection"
6+
target: "branch"
7+
enforcement: "active"
8+
conditions:
9+
ref_name:
10+
include:
11+
- "main"
12+
- "develop"
13+
parameters:
14+
required_status_checks:
15+
strict: true
16+
contexts:
17+
- "terraform-validate"
18+
- "security-scanning"
19+
- "kubernetes-deploy"
20+
- "ansible-lint"
21+
dismiss_stale_reviews_on_push: true
22+
require_code_owner_reviews: true
23+
required_approving_review_count: 2
24+
require_last_push_approval: true
25+
required_linear_history: true
26+
allow_force_pushes: false
27+
allow_deletions: false
28+
block_creations: false
29+
required_conversation_resolution: true
30+
31+
- name: "Feature branch rules"
32+
target: "branch"
33+
enforcement: "active"
34+
conditions:
35+
ref_name:
36+
include:
37+
- "feat/*"
38+
- "feature/*"
39+
- "bugfix/*"
40+
- "hotfix/*"
41+
parameters:
42+
required_status_checks:
43+
strict: true
44+
contexts:
45+
- "terraform-validate"
46+
- "security-scanning"
47+
dismiss_stale_reviews_on_push: true
48+
require_code_owner_reviews: false
49+
required_approving_review_count: 1
50+
require_last_push_approval: false
51+
required_linear_history: false
52+
allow_force_pushes: false
53+
allow_deletions: true
54+
block_creations: false
55+
required_conversation_resolution: true
56+
57+
- name: "Pull request rules"
58+
target: "pull_request"
59+
enforcement: "active"
60+
conditions:
61+
ref_name:
62+
include:
63+
- "main"
64+
- "develop"
65+
parameters:
66+
required_approving_review_count: 2
67+
dismiss_stale_reviews_on_push: true
68+
require_code_owner_reviews: true
69+
require_last_push_approval: true
70+
required_linear_history: true
71+
required_conversation_resolution: true
72+
73+
- name: "Commit message rules"
74+
target: "tag"
75+
enforcement: "active"
76+
conditions: {}
77+
parameters:
78+
pattern: "^(feat|fix|docs|style|refactor|test|chore|ci|build|perf|revert)(\(.+\))?: .{1,50}"
79+
operator: "regex"
80+
81+
- name: "File path rules"
82+
target: "path"
83+
enforcement: "active"
84+
conditions:
85+
ref_name:
86+
include:
87+
- "main"
88+
- "develop"
89+
parameters:
90+
rules:
91+
- name: "Terraform files require review"
92+
paths:
93+
include:
94+
- "terraform/**"
95+
required_approving_review_count: 2
96+
- name: "Security-sensitive files"
97+
paths:
98+
include:
99+
- "**/*secret*"
100+
- "**/*key*"
101+
- "**/*password*"
102+
- "**/*credential*"
103+
required_approving_review_count: 2
104+
require_code_owner_reviews: true
105+
- name: "Documentation changes"
106+
paths:
107+
include:
108+
- "docs/**"
109+
- "*.md"
110+
required_approving_review_count: 1
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Branch Protection Check
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
branch-protection-check:
11+
name: Branch Protection Validation
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Validate commit messages
21+
run: |
22+
if [ "${{ github.event_name }}" = "push" ]; then
23+
echo "Checking commit messages..."
24+
git log --oneline -1 | grep -E "^(feat|fix|docs|style|refactor|test|chore|ci|build|perf|revert)(\(.+\))?: .{1,50}" || {
25+
echo "❌ Commit message doesn't follow conventional format"
26+
echo "Expected format: type(scope): description"
27+
echo "Types: feat, fix, docs, style, refactor, test, chore, ci, build, perf, revert"
28+
exit 1
29+
}
30+
echo "✅ Commit message format is valid"
31+
fi
32+
33+
- name: Check for secrets
34+
run: |
35+
echo "Checking for potential secrets..."
36+
if command -v detect-secrets &> /dev/null; then
37+
detect-secrets scan --baseline .secrets.baseline
38+
else
39+
echo "⚠️ detect-secrets not available, skipping secret check"
40+
fi
41+
42+
- name: Validate file permissions
43+
run: |
44+
echo "Checking file permissions..."
45+
find . -name "*.sh" -not -perm -111 | while read file; do
46+
echo "❌ Shell script $file is not executable"
47+
exit 1
48+
done
49+
echo "✅ All shell scripts have proper permissions"
50+
51+
- name: Check for large files
52+
run: |
53+
echo "Checking for large files..."
54+
find . -type f -size +10M -not -path "./.git/*" | while read file; do
55+
echo "❌ Large file detected: $file"
56+
echo "Consider using Git LFS for files larger than 10MB"
57+
exit 1
58+
done
59+
echo "✅ No large files detected"

0 commit comments

Comments
 (0)