Skip to content

Commit

Permalink
ci: linter configs
Browse files Browse the repository at this point in the history
  • Loading branch information
lotyp committed Sep 12, 2024
1 parent 7b0c64e commit 342d302
Show file tree
Hide file tree
Showing 12 changed files with 203 additions and 65 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ indent_size = 2

[*.yaml.j2]
indent_size = 2

[Makefile]
indent_style = tab
4 changes: 4 additions & 0 deletions .ansible-lint → .github/.ansible-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,8 @@
skip_list:
- experimental

exclude_paths:
- ./contrib
- ./.venv

...
44 changes: 44 additions & 0 deletions .github/.commitlint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// More info: https://github.com/wayofdev/npm-shareable-configs/blob/master/packages/commitlint-config/src/index.js
const automaticCommitPattern = /^chore\(release\):.*\[skip ci]/

export default {
extends: ['@commitlint/config-conventional'],
/*
This resolves a linting conflict between commitlint's body-max-line-length
due to @semantic-release/git putting release notes in the commit body
https://github.com/semantic-release/git/issues/331
*/
ignores: [(commitMessage) => automaticCommitPattern.test(commitMessage)],
rules: {
'body-leading-blank': [1, 'always'],
'body-max-line-length': [2, 'always', 120],
'footer-leading-blank': [1, 'always'],
'footer-max-line-length': [2, 'always', 120],
'header-max-length': [2, 'always', 100],
'scope-case': [2, 'always', 'lower-case'],
'subject-case': [2, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']],
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never', '.'],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never'],
'type-enum': [
2,
'always',
[
'feat', // New feature
'fix', // Bug fix
'perf', // Performance improvement
'docs', // Documentation changes
'style', // Code style update (formatting, missing semi colons, etc)
'deps', // Dependency updates
'refactor', // Code refactoring
'ci', // Continuous integration changes
'test', // Adding missing tests
'revert', // Revert to a previous commit
'build', // Changes that affect the build system
'chore', // Other changes that don't modify src or test files
'security', // Security improvements
],
],
},
}
65 changes: 65 additions & 0 deletions .github/.cz.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// @see https://cz-git.qbb.sh/config/#configure-template
module.exports = {
alias: { fd: 'docs: fix typos' },
messages: {
type: 'Select the type of change that you\'re committing:',
scope: 'Denote the SCOPE of this change (optional):',
customScope: 'Denote the SCOPE of this change:',
subject: 'Write a SHORT, IMPERATIVE tense description of the change:\n',
body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n',
breaking: 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n',
footerPrefixesSelect: 'Select the ISSUES type of changeList by this change (optional):',
customFooterPrefix: 'Input ISSUES prefix:',
footer: 'List any ISSUES by this change. E.g.: #31, #34:\n',
generatingByAI: 'Generating your AI commit subject...',
generatedSelectByAI: 'Select suitable subject by AI generated:',
confirmCommit: 'Are you sure you want to proceed with the commit above?'
},
types: [
{ value: 'feat', name: 'feat: A new feature', emoji: ':sparkles:' },
{ value: 'fix', name: 'fix: A bug fix', emoji: ':bug:' },
{ value: 'perf', name: 'perf: A code change that improves performance', emoji: ':zap:' },
{ value: 'docs', name: 'docs: Documentation only changes', emoji: ':memo:' },
{ value: 'style', name: 'style: Changes that do not affect the meaning of the code', emoji: ':lipstick:' },
{ value: 'deps', name: 'deps: A dependency update', emoji: ':package:' },
{ value: 'refactor', name: 'refactor: A code change that neither fixes a bug nor adds a feature', emoji: ':recycle:' },
{ value: 'ci', name: 'ci: Changes to our CI configuration files and scripts', emoji: ':ferris_wheel:' },
{ value: 'test', name: 'test: Adding missing tests or correcting existing tests', emoji: ':white_check_mark:' },
{ value: 'revert', name: 'revert: Reverts a previous commit', emoji: ':rewind:' },
{ value: 'build', name: 'build: Changes that affect the build system or external dependencies', emoji: ':package:' },
{ value: 'chore', name: 'chore: Other changes that don\'t modify src or test files', emoji: ':hammer:' },
{ value: 'security', name: 'security: A code change that fixes a security issue', emoji: ':lock:' }
],
useEmoji: false,
emojiAlign: 'center',
useAI: false,
aiNumber: 1,
themeColorCode: '',
scopes: [],
allowCustomScopes: true,
allowEmptyScopes: true,
customScopesAlign: 'bottom',
customScopesAlias: 'custom',
emptyScopesAlias: 'empty',
upperCaseSubject: false,
markBreakingChangeMode: false,
allowBreakingChanges: ['feat', 'fix'],
breaklineNumber: 100,
breaklineChar: '|',
skipQuestions: [],
issuePrefixes: [{ value: 'closed', name: 'closed: ISSUES has been processed' }],
customIssuePrefixAlign: 'top',
emptyIssuePrefixAlias: 'skip',
customIssuePrefixAlias: 'custom',
allowCustomIssuePrefix: true,
allowEmptyIssuePrefix: true,
confirmColorize: true,
maxHeaderLength: Infinity,
maxSubjectLength: Infinity,
minSubjectLength: 0,
scopeOverrides: undefined,
defaultBody: '',
defaultIssues: '',
defaultScope: '',
defaultSubject: ''
}
7 changes: 7 additions & 0 deletions .github/.hadolint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---

trustedRegistries:
- docker.io
- "*.gcr.io"

...
7 changes: 7 additions & 0 deletions .github/.markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/main/schema/markdownlint-config-schema.json",
"line-length": false,
"no-inline-html": false,
"first-line-h1": false,
"no-duplicate-heading": false
}
57 changes: 57 additions & 0 deletions .github/.yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---

extends: default

rules:
braces:
# Defaults
# min-spaces-inside: 0
# max-spaces-inside: 0

# Keep 0 min-spaces to not error on empty {} collection definitions
min-spaces-inside: 0

# Allow one space inside braces to improve code readability
max-spaces-inside: 1

brackets:
# Defaults
# min-spaces-inside: 0
# max-spaces-inside: 0

# Keep 0 min-spaces to not error on empty [] collection definitions
min-spaces-inside: 0

# Allow one space inside braces to improve code readability
max-spaces-inside: 1

colons:
# Defaults
# min-spaces-before: 0
# max-spaces-after: 1

# Allow multiple spaces after a colon to allow indentation of YAML
# dictionary values
max-spaces-after: -1

commas:
# Defaults
# max-spaces-after: 1

# Allow multiple spaces after a comma to allow indentation of YAML
# dictionary values
max-spaces-after: -1

comments:
require-starting-space: true
min-spaces-from-content: 1

comments-indentation: false

line-length: disable

octal-values:
forbid-implicit-octal: true
forbid-explicit-octal: true

...
23 changes: 16 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,48 @@

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: fix-encoding-pragma
- id: check-added-large-files
args: ['--maxkb=600']

- repo: https://github.com/adrienverge/yamllint
rev: v1.32.0
rev: v1.35.1
hooks:
- id: yamllint
files: \.(yaml|yml)$
types: [file, yaml]
entry: yamllint --strict
entry: yamllint -c .github/.yamllint.yaml --strict

- repo: https://github.com/commitizen-tools/commitizen
rev: 3.5.2
rev: v3.29.0
hooks:
- id: commitizen
stages:
- commit-msg

- repo: https://github.com/mpalmer/action-validator
rev: v0.6.0
hooks:
- id: action-validator
stages:
- commit-msg

- repo: https://github.com/ansible/ansible-lint
rev: v6.17.2
rev: v24.7.0
hooks:
- id: ansible-lint
entry: ansible-lint . --force-color
entry: bash -c 'YAMLLINT_CONFIG_FILE=".github/.yamllint.yaml" ansible-lint . --force-color -c .github/.ansible-lint.yml'
pass_filenames: false
always_run: true
additional_dependencies:
- .[community]

- repo: https://github.com/robertdebock/pre-commit
rev: v1.5.2
rev: v1.5.3
hooks:
- id: ansible_role_find_unused_variable
- id: ansible_role_find_empty_files
Expand Down
58 changes: 0 additions & 58 deletions .yamllint

This file was deleted.

Binary file removed assets/logo.gh-dark-mode-only.png
Binary file not shown.
Binary file removed assets/logo.gh-light-mode-only.png
Binary file not shown.
Binary file removed assets/screenshot.png
Binary file not shown.

0 comments on commit 342d302

Please sign in to comment.