Skip to content

Commit 99c7be7

Browse files
committed
feat: Add comprehensive repository rulesets and configuration files
- Add YAML linting rules (.yamllint.yml) for Kubernetes, Ansible, Helm files - Add Terraform linting configuration (.tflint.hcl) with Azure-specific rules - Add shell script linting configuration (.shellcheckrc) - Add pre-commit hooks configuration (.pre-commit-config.yaml) with comprehensive checks - Add EditorConfig (.editorconfig) for consistent formatting across editors - Add comprehensive .gitignore for various file types and tools - Add GitHub repository rules (.github/ruleset.yml) for branch protection - Add Ansible linting configuration (.ansible-lint.yml) - Add Markdown linting configuration (.markdownlint.yml) - Add secrets baseline (.secrets.baseline) for detect-secrets - Add comprehensive RULESETS-README.md with setup and usage instructions These rulesets ensure code quality, security, and consistency across the repository.
1 parent 16fcaa4 commit 99c7be7

File tree

10 files changed

+835
-37
lines changed

10 files changed

+835
-37
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: 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

0 commit comments

Comments
 (0)