Skip to content

Commit 8c1ef94

Browse files
authored
Merge pull request #2 from emsearcy/python-implementation
Add Python implementation and playbooks
2 parents 29f15a5 + f212a5a commit 8c1ef94

File tree

25 files changed

+2773
-2
lines changed

25 files changed

+2773
-2
lines changed

.cspell.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"language": "en",
3+
"dictionaries": ["companies", "filetypes", "fullstack", "softwareTerms"],
4+
"words": [
5+
"authelia",
6+
"aquasecurity",
7+
"dotenv",
8+
"excepthook",
9+
"gaudin",
10+
"isoformat",
11+
"iubp",
12+
"jetstream",
13+
"lfx",
14+
"lfprojects",
15+
"linuxfoundation",
16+
"meltano",
17+
"mockdata",
18+
"searchpath",
19+
"subproject",
20+
"representer",
21+
"timestamper",
22+
"timedelta",
23+
"uuidgen"
24+
],
25+
"flagWords": [
26+
"abort: cancel, end, fail, halt, stop, terminate",
27+
"abortion: cancelation, ending, failure, halting, stopping, termination",
28+
"blackhat: attacker, malicious",
29+
"black-hat: attacker, malicious",
30+
"whitehat: ethical, security, researcher",
31+
"white-hat: ethical, security, researcher",
32+
"cripple: disable, degrade, impact",
33+
"crippled: disabled, degraded, impacted",
34+
"grandfathered: legacy, exempted, preauthorized",
35+
"master: controller, primary, main, leader, parent",
36+
"slave: agent, replica, secondary, follower, child",
37+
"tribe: squad, team, group",
38+
"sanity-check: test, verify, validate",
39+
"whitelist: allowlist",
40+
"white-list: allow-list",
41+
"blacklist: denylist",
42+
"black-list: deny-list"
43+
],
44+
"ignorePaths": [
45+
".cspell.json",
46+
".gitignore",
47+
".mega-linter.yml",
48+
".yamllint.yml",
49+
"CODEOWNERS",
50+
"LICENSE",
51+
"LICENSE-docs",
52+
"megalinter-reports",
53+
"pyproject.toml",
54+
"styles"
55+
],
56+
"languageSettings": [
57+
{
58+
"languageId": "markdown",
59+
"ignoreRegExpList": ["/^\\s*```\\s*(mermaid)[\\s\\S]*?^\\s*```/gm"]
60+
}
61+
]
62+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
# Copyright The Linux Foundation and each contributor to LFX.
3+
# SPDX-License-Identifier: MIT
4+
5+
name: License Header Check
6+
7+
"on": [pull_request]
8+
9+
permissions:
10+
contents: read
11+
pull-requests: write
12+
13+
jobs:
14+
license-header-check:
15+
name: License Header Check
16+
uses: linuxfoundation/lfx-public-workflows/.github/workflows/license-header-check.yml@main
17+
with:
18+
copyright_line: "Copyright The Linux Foundation and each contributor to LFX."
19+
include_files: |
20+
[
21+
"*.tpl",
22+
"*.txt",
23+
"*.yaml",
24+
"*.yml",
25+
".gitignore"
26+
]

.github/workflows/mega-linter.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
# Copyright The Linux Foundation and each contributor to LFX.
3+
# SPDX-License-Identifier: MIT
4+
5+
name: MegaLinter
6+
7+
"on":
8+
pull_request: null
9+
10+
permissions:
11+
contents: read
12+
13+
concurrency:
14+
group: ${{ github.ref }}-${{ github.workflow }}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
megalinter:
19+
name: MegaLinter
20+
runs-on: ubuntu-latest
21+
22+
permissions:
23+
contents: read
24+
25+
steps:
26+
# Git Checkout
27+
- name: Checkout Code
28+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
29+
with:
30+
fetch-depth: 0
31+
32+
# MegaLinter
33+
- name: MegaLinter
34+
id: ml
35+
# Use the Python flavor.
36+
uses: oxsecurity/megalinter/flavors/python@62c799d895af9bcbca5eacfebca29d527f125a57 # 9.1.0
37+
env:
38+
# Pass token for better rate limits.
39+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Copyright The Linux Foundation and each contributor to LFX.
2+
# SPDX-License-Identifier: MIT
3+
4+
# Local and temporary files
5+
.DS_Store
6+
.idea/
7+
.vscode/
8+
*.swp
9+
*~
10+
.env
11+
*.env
12+
13+
# MegaLinter reports
14+
/megalinter-reports/
15+
16+
# Python environment
17+
.venv/
18+
.env*
19+
__pycache__/
20+
.mypy_cache/
21+
.ruff_cache/

.lycheeignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Ignore local Kubernetes paths.
2+
^https?://[a-zA-Z0-9.-]+\.svc\.cluster\.local

.mega-linter.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Copyright The Linux Foundation and each contributor to LFX.
2+
# SPDX-License-Identifier: MIT
3+
---
4+
GITHUB_COMMENT_REPORTER: false
5+
DISABLE_LINTERS:
6+
# Pylint errors on missing dependencies, and is redundant with ruff.
7+
- PYTHON_PYLINT
8+
# Pyright errors on missing dependencies.
9+
- PYTHON_PYRIGHT
10+
# yamllint is sufficient for us.
11+
- YAML_PRETTIER
12+
DISABLE_ERRORS_LINTERS:
13+
# This may be informative but doesn't need to break the build.
14+
- COPYPASTE_JSCPD
15+
# Making optional to not block builds, even though it's still important!
16+
- SPELL_CSPELL
17+
PYTHON_ISORT_ARGUMENTS: "--src src"

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.12

.yamllint.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
# Copyright The Linux Foundation and each contributor to LFX.
3+
# SPDX-License-Identifier: MIT
4+
extends: default
5+
ignore: |
6+
.git
7+
__pycache__
8+
megalinter-reports
9+
playbooks
10+
rules:
11+
line-length:
12+
max: 120
13+
level: warning

LICENSE

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Copyright The Linux Foundation and each contributor to LFX.
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of
4+
this software and associated documentation files (the "Software"), to deal in
5+
the Software without restriction, including without limitation the rights to
6+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7+
the Software, and to permit persons to whom the Software is furnished to do so,
8+
subject to the following conditions:
9+
10+
The above copyright notice and this permission notice shall be included in all
11+
copies or substantial portions of the Software.
12+
13+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

0 commit comments

Comments
 (0)