kubenumerate 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kubenumerate-2.0.0/.dockerignore +34 -0
- kubenumerate-2.0.0/.flake8 +3 -0
- kubenumerate-2.0.0/.github/workflows/ci.yml +205 -0
- kubenumerate-2.0.0/.github/workflows/publish.yml +41 -0
- kubenumerate-2.0.0/.github/workflows/release.yml +89 -0
- kubenumerate-2.0.0/.github/workflows/version-bump.yml +72 -0
- kubenumerate-2.0.0/.gitignore +83 -0
- kubenumerate-2.0.0/.idea/.gitignore +8 -0
- kubenumerate-2.0.0/.idea/inspectionProfiles/Project_Default.xml +74 -0
- kubenumerate-2.0.0/.idea/kubenumerate.iml +18 -0
- kubenumerate-2.0.0/.idea/material_theme_project_new.xml +12 -0
- kubenumerate-2.0.0/.idea/misc.xml +7 -0
- kubenumerate-2.0.0/.idea/modules.xml +9 -0
- kubenumerate-2.0.0/.idea/vcs.xml +6 -0
- kubenumerate-2.0.0/CI_CD_SUMMARY.md +253 -0
- kubenumerate-2.0.0/Dockerfile +143 -0
- kubenumerate-2.0.0/ExtensiveRoleCheck.py +449 -0
- kubenumerate-2.0.0/LICENSE +674 -0
- kubenumerate-2.0.0/MANIFEST.in +3 -0
- kubenumerate-2.0.0/PKG-INFO +926 -0
- kubenumerate-2.0.0/README.md +200 -0
- kubenumerate-2.0.0/VERSION +1 -0
- kubenumerate-2.0.0/VERSION_MANAGEMENT.md +284 -0
- kubenumerate-2.0.0/demo_version.py +165 -0
- kubenumerate-2.0.0/formatter.py +60 -0
- kubenumerate-2.0.0/kubenumerate.egg-info/PKG-INFO +926 -0
- kubenumerate-2.0.0/kubenumerate.egg-info/SOURCES.txt +41 -0
- kubenumerate-2.0.0/kubenumerate.egg-info/dependency_links.txt +1 -0
- kubenumerate-2.0.0/kubenumerate.egg-info/entry_points.txt +2 -0
- kubenumerate-2.0.0/kubenumerate.egg-info/requires.txt +17 -0
- kubenumerate-2.0.0/kubenumerate.egg-info/top_level.txt +4 -0
- kubenumerate-2.0.0/kubenumerate.py +3004 -0
- kubenumerate-2.0.0/pyproject.toml +144 -0
- kubenumerate-2.0.0/requirements.txt +8 -0
- kubenumerate-2.0.0/setup.cfg +4 -0
- kubenumerate-2.0.0/setup.py +75 -0
- kubenumerate-2.0.0/src/ai_integration/ai_support.py +37 -0
- kubenumerate-2.0.0/src/ai_integration/ai_test.py +13 -0
- kubenumerate-2.0.0/summary_table.py +401 -0
- kubenumerate-2.0.0/test_summary_table_logic.py +168 -0
- kubenumerate-2.0.0/tests/__init__.py +1 -0
- kubenumerate-2.0.0/tests/test_version.py +163 -0
- kubenumerate-2.0.0/version.py +190 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Include any files or directories that you don't want to be copied to your
|
|
2
|
+
# container here (e.g., local build artifacts, temporary files, etc.).
|
|
3
|
+
#
|
|
4
|
+
# For more help, visit the .dockerignore file reference guide at
|
|
5
|
+
# https://docs.docker.com/go/build-context-dockerignore/
|
|
6
|
+
|
|
7
|
+
**/.DS_Store
|
|
8
|
+
**/__pycache__
|
|
9
|
+
**/.venv
|
|
10
|
+
**/.classpath
|
|
11
|
+
**/.dockerignore
|
|
12
|
+
**/.env
|
|
13
|
+
**/.git
|
|
14
|
+
**/.gitignore
|
|
15
|
+
**/.project
|
|
16
|
+
**/.settings
|
|
17
|
+
**/.toolstarget
|
|
18
|
+
**/.vs
|
|
19
|
+
**/.vscode
|
|
20
|
+
**/*.*proj.user
|
|
21
|
+
**/*.dbmdl
|
|
22
|
+
**/*.jfm
|
|
23
|
+
**/bin
|
|
24
|
+
**/charts
|
|
25
|
+
**/docker-compose*
|
|
26
|
+
**/compose*
|
|
27
|
+
**/Dockerfile*
|
|
28
|
+
**/node_modules
|
|
29
|
+
**/npm-debug.log
|
|
30
|
+
**/obj
|
|
31
|
+
**/secrets.dev.yaml
|
|
32
|
+
**/values.dev.yaml
|
|
33
|
+
LICENSE
|
|
34
|
+
README.md
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
name: CI/CD Pipeline
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, develop ]
|
|
6
|
+
tags: [ 'v*' ]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [ main, develop ]
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
PYTHON_VERSION: '3.12'
|
|
12
|
+
KUBENUMERATE_VERSION: ${{ github.ref_name }}
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
security-events: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
test:
|
|
19
|
+
name: Test
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout code
|
|
24
|
+
uses: actions/checkout@v4
|
|
25
|
+
with:
|
|
26
|
+
fetch-depth: 0 # Required for git-based versioning
|
|
27
|
+
|
|
28
|
+
- name: Set up Python
|
|
29
|
+
uses: actions/setup-python@v4
|
|
30
|
+
with:
|
|
31
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
32
|
+
|
|
33
|
+
- name: Cache pip dependencies
|
|
34
|
+
uses: actions/cache@v4
|
|
35
|
+
with:
|
|
36
|
+
path: ~/.cache/pip
|
|
37
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
${{ runner.os }}-pip-
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: |
|
|
43
|
+
python -m pip install --upgrade pip
|
|
44
|
+
pip install -r requirements.txt
|
|
45
|
+
pip install pytest pytest-cov flake8 black mypy bandit safety
|
|
46
|
+
|
|
47
|
+
- name: Run linting
|
|
48
|
+
run: |
|
|
49
|
+
flake8 kubenumerate.py ExtensiveRoleCheck.py formatter.py --max-line-length=120 --ignore=E501,W503
|
|
50
|
+
black --check --diff kubenumerate.py ExtensiveRoleCheck.py
|
|
51
|
+
|
|
52
|
+
- name: Run type checking
|
|
53
|
+
run: |
|
|
54
|
+
mypy kubenumerate.py --ignore-missing-imports --install-types --non-interactive
|
|
55
|
+
|
|
56
|
+
- name: Run security scanning
|
|
57
|
+
run: |
|
|
58
|
+
bandit -r . -f json -o bandit-report.json || true
|
|
59
|
+
safety check --output json | tee safety-report.json || true
|
|
60
|
+
|
|
61
|
+
- name: Run tests
|
|
62
|
+
run: |
|
|
63
|
+
python -m pytest tests/ -v --cov=kubenumerate --cov-report=xml --cov-report=html
|
|
64
|
+
|
|
65
|
+
- name: Upload coverage reports
|
|
66
|
+
uses: codecov/codecov-action@v4
|
|
67
|
+
with:
|
|
68
|
+
file: ./coverage.xml
|
|
69
|
+
flags: unittests
|
|
70
|
+
name: codecov-umbrella
|
|
71
|
+
|
|
72
|
+
- name: Test version management
|
|
73
|
+
run: |
|
|
74
|
+
python version.py
|
|
75
|
+
python -c "from kubenumerate import Kubenumerate; k = Kubenumerate(); print(f'Version: {k.version}')"
|
|
76
|
+
|
|
77
|
+
- name: Upload test artifacts
|
|
78
|
+
uses: actions/upload-artifact@v4
|
|
79
|
+
if: always()
|
|
80
|
+
with:
|
|
81
|
+
name: test-results
|
|
82
|
+
path: |
|
|
83
|
+
coverage.xml
|
|
84
|
+
htmlcov/
|
|
85
|
+
bandit-report.json
|
|
86
|
+
safety-report.json
|
|
87
|
+
|
|
88
|
+
build:
|
|
89
|
+
name: Build
|
|
90
|
+
runs-on: ubuntu-latest
|
|
91
|
+
needs: test
|
|
92
|
+
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
|
|
93
|
+
|
|
94
|
+
steps:
|
|
95
|
+
- name: Checkout code
|
|
96
|
+
uses: actions/checkout@v4
|
|
97
|
+
with:
|
|
98
|
+
fetch-depth: 0
|
|
99
|
+
|
|
100
|
+
- name: Set up Python
|
|
101
|
+
uses: actions/setup-python@v4
|
|
102
|
+
with:
|
|
103
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
104
|
+
|
|
105
|
+
- name: Install dependencies
|
|
106
|
+
run: |
|
|
107
|
+
python -m pip install --upgrade pip
|
|
108
|
+
pip install -r requirements.txt
|
|
109
|
+
|
|
110
|
+
- name: Get version
|
|
111
|
+
id: version
|
|
112
|
+
run: |
|
|
113
|
+
VERSION=$(python version.py)
|
|
114
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
115
|
+
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
116
|
+
|
|
117
|
+
- name: Build Docker image
|
|
118
|
+
run: |
|
|
119
|
+
docker build -t kubenumerate:${{ steps.version.outputs.version }} .
|
|
120
|
+
docker tag kubenumerate:${{ steps.version.outputs.version }} kubenumerate:latest
|
|
121
|
+
|
|
122
|
+
- name: Set up Docker Buildx
|
|
123
|
+
uses: docker/setup-buildx-action@v2
|
|
124
|
+
|
|
125
|
+
- name: Login to Docker Hub
|
|
126
|
+
uses: docker/login-action@v2
|
|
127
|
+
with:
|
|
128
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
|
129
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
130
|
+
|
|
131
|
+
- name: Build and push Docker image
|
|
132
|
+
uses: docker/build-push-action@v4
|
|
133
|
+
with:
|
|
134
|
+
context: .
|
|
135
|
+
push: true
|
|
136
|
+
tags: |
|
|
137
|
+
${{ secrets.DOCKER_USERNAME }}/kubenumerate:${{ steps.version.outputs.version }}
|
|
138
|
+
${{ secrets.DOCKER_USERNAME }}/kubenumerate:latest
|
|
139
|
+
cache-from: type=gha
|
|
140
|
+
cache-to: type=gha,mode=max
|
|
141
|
+
|
|
142
|
+
release:
|
|
143
|
+
name: Release
|
|
144
|
+
runs-on: ubuntu-latest
|
|
145
|
+
needs: build
|
|
146
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
147
|
+
|
|
148
|
+
steps:
|
|
149
|
+
- name: Checkout code
|
|
150
|
+
uses: actions/checkout@v4
|
|
151
|
+
with:
|
|
152
|
+
fetch-depth: 0
|
|
153
|
+
|
|
154
|
+
- name: Get version
|
|
155
|
+
id: version
|
|
156
|
+
run: |
|
|
157
|
+
VERSION=$(python version.py)
|
|
158
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
159
|
+
|
|
160
|
+
- name: Create Release
|
|
161
|
+
id: create_release
|
|
162
|
+
uses: actions/create-release@v4
|
|
163
|
+
env:
|
|
164
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
165
|
+
with:
|
|
166
|
+
tag_name: ${{ github.ref }}
|
|
167
|
+
release_name: Release ${{ steps.version.outputs.version }}
|
|
168
|
+
draft: false
|
|
169
|
+
prerelease: false
|
|
170
|
+
|
|
171
|
+
- name: Upload release assets
|
|
172
|
+
uses: actions/upload-release-asset@v4
|
|
173
|
+
env:
|
|
174
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
175
|
+
with:
|
|
176
|
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
177
|
+
asset_path: ./kubenumerate.py
|
|
178
|
+
asset_name: kubenumerate-${{ steps.version.outputs.version }}.py
|
|
179
|
+
asset_content_type: text/plain
|
|
180
|
+
|
|
181
|
+
security-scan:
|
|
182
|
+
name: Security Scan
|
|
183
|
+
runs-on: ubuntu-latest
|
|
184
|
+
needs: test
|
|
185
|
+
|
|
186
|
+
steps:
|
|
187
|
+
- name: Checkout code
|
|
188
|
+
uses: actions/checkout@v4
|
|
189
|
+
|
|
190
|
+
- name: Run Trivy vulnerability scanner
|
|
191
|
+
uses: aquasecurity/trivy-action@master
|
|
192
|
+
with:
|
|
193
|
+
scan-type: 'fs'
|
|
194
|
+
scan-ref: '.'
|
|
195
|
+
format: 'sarif'
|
|
196
|
+
output: 'trivy-results.sarif'
|
|
197
|
+
|
|
198
|
+
- name: Upload Trivy scan results to GitHub Security tab
|
|
199
|
+
uses: github/codeql-action/upload-sarif@v3
|
|
200
|
+
if: always()
|
|
201
|
+
with:
|
|
202
|
+
sarif_file: 'trivy-results.sarif'
|
|
203
|
+
category: 'Trivy Vulnerability Scan'
|
|
204
|
+
env:
|
|
205
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
id-token: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build-and-publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
env:
|
|
16
|
+
PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout code
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: "3.12"
|
|
27
|
+
|
|
28
|
+
- name: Build distributions
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip build
|
|
31
|
+
python -m build
|
|
32
|
+
|
|
33
|
+
- name: Publish to PyPI (token)
|
|
34
|
+
if: ${{ env.PYPI_API_TOKEN != '' }}
|
|
35
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
36
|
+
with:
|
|
37
|
+
password: ${{ env.PYPI_API_TOKEN }}
|
|
38
|
+
|
|
39
|
+
- name: Publish to PyPI (trusted publishing)
|
|
40
|
+
if: ${{ env.PYPI_API_TOKEN == '' }}
|
|
41
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: Create Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags: [ 'v*' ]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
create-release:
|
|
9
|
+
name: Create Release
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout code
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v4
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.12'
|
|
22
|
+
|
|
23
|
+
- name: Get version from tag
|
|
24
|
+
id: version
|
|
25
|
+
run: |
|
|
26
|
+
VERSION=${GITHUB_REF#refs/tags/v}
|
|
27
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
28
|
+
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
29
|
+
|
|
30
|
+
- name: Update VERSION file for release
|
|
31
|
+
run: |
|
|
32
|
+
echo "${{ steps.version.outputs.version }}" > VERSION
|
|
33
|
+
|
|
34
|
+
- name: Generate changelog
|
|
35
|
+
id: changelog
|
|
36
|
+
run: |
|
|
37
|
+
# Get commits since last tag
|
|
38
|
+
PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "")
|
|
39
|
+
if [ -z "$PREVIOUS_TAG" ]; then
|
|
40
|
+
CHANGELOG=$(git log --oneline --no-merges)
|
|
41
|
+
else
|
|
42
|
+
CHANGELOG=$(git log --oneline --no-merges ${PREVIOUS_TAG}..HEAD)
|
|
43
|
+
fi
|
|
44
|
+
echo "changelog<<EOF" >> $GITHUB_OUTPUT
|
|
45
|
+
echo "$CHANGELOG" >> $GITHUB_OUTPUT
|
|
46
|
+
echo "EOF" >> $GITHUB_OUTPUT
|
|
47
|
+
|
|
48
|
+
- name: Create Release
|
|
49
|
+
uses: actions/create-release@v1
|
|
50
|
+
env:
|
|
51
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
52
|
+
with:
|
|
53
|
+
tag_name: ${{ github.ref }}
|
|
54
|
+
release_name: Release ${{ steps.version.outputs.version }}
|
|
55
|
+
body: |
|
|
56
|
+
## Changes in this release
|
|
57
|
+
|
|
58
|
+
${{ steps.changelog.outputs.changelog }}
|
|
59
|
+
|
|
60
|
+
## Installation
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Download the latest version
|
|
64
|
+
wget https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/kubenumerate-${{ steps.version.outputs.version }}.py
|
|
65
|
+
chmod +x kubenumerate-${{ steps.version.outputs.version }}.py
|
|
66
|
+
|
|
67
|
+
# Or use Docker
|
|
68
|
+
docker pull gagarter/kubenumerate:${{ steps.version.outputs.version }}
|
|
69
|
+
```
|
|
70
|
+
draft: false
|
|
71
|
+
prerelease: false
|
|
72
|
+
|
|
73
|
+
- name: Upload release assets
|
|
74
|
+
uses: actions/upload-release-asset@v1
|
|
75
|
+
env:
|
|
76
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
77
|
+
with:
|
|
78
|
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
79
|
+
asset_path: ./kubenumerate.py
|
|
80
|
+
asset_name: kubenumerate-${{ steps.version.outputs.version }}.py
|
|
81
|
+
asset_content_type: text/plain
|
|
82
|
+
|
|
83
|
+
- name: Commit version update
|
|
84
|
+
run: |
|
|
85
|
+
git config --local user.email "action@github.com"
|
|
86
|
+
git config --local user.name "GitHub Action"
|
|
87
|
+
git add VERSION
|
|
88
|
+
git commit -m "Update VERSION for release ${{ steps.version.outputs.version }}"
|
|
89
|
+
git push
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Version Bump
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
paths-ignore:
|
|
7
|
+
- 'VERSION'
|
|
8
|
+
- '.github/workflows/version-bump.yml'
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
bump-version:
|
|
15
|
+
name: Bump Version
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout code
|
|
20
|
+
uses: actions/checkout@v4
|
|
21
|
+
with:
|
|
22
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
23
|
+
fetch-depth: 0
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v4
|
|
27
|
+
with:
|
|
28
|
+
python-version: '3.12'
|
|
29
|
+
|
|
30
|
+
- name: Configure Git
|
|
31
|
+
run: |
|
|
32
|
+
git config --local user.email "action@github.com"
|
|
33
|
+
git config --local user.name "GitHub Action"
|
|
34
|
+
|
|
35
|
+
- name: Get current version
|
|
36
|
+
id: current_version
|
|
37
|
+
run: |
|
|
38
|
+
CURRENT_VERSION=$(python version.py)
|
|
39
|
+
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
40
|
+
|
|
41
|
+
- name: Bump patch version
|
|
42
|
+
id: new_version
|
|
43
|
+
run: |
|
|
44
|
+
# Extract version components
|
|
45
|
+
IFS='.' read -ra VERSION_PARTS <<< "${{ steps.current_version.outputs.current_version }}"
|
|
46
|
+
MAJOR="${VERSION_PARTS[0]}"
|
|
47
|
+
MINOR="${VERSION_PARTS[1]}"
|
|
48
|
+
|
|
49
|
+
# Handle patch version (remove -dev suffix if present)
|
|
50
|
+
PATCH_PART="${VERSION_PARTS[2]}"
|
|
51
|
+
if [[ $PATCH_PART == *"-dev"* ]]; then
|
|
52
|
+
PATCH=$(echo $PATCH_PART | cut -d'-' -f1)
|
|
53
|
+
else
|
|
54
|
+
PATCH=$PATCH_PART
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# Increment patch version
|
|
58
|
+
NEW_PATCH=$((PATCH + 1))
|
|
59
|
+
NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}"
|
|
60
|
+
|
|
61
|
+
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
62
|
+
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
|
|
63
|
+
|
|
64
|
+
- name: Update VERSION file
|
|
65
|
+
run: |
|
|
66
|
+
echo "${{ steps.new_version.outputs.new_version }}" > VERSION
|
|
67
|
+
|
|
68
|
+
- name: Commit and push version bump
|
|
69
|
+
run: |
|
|
70
|
+
git add VERSION
|
|
71
|
+
git commit -m "Bump version to ${{ steps.new_version.outputs.new_version }} [skip ci]" || echo "No changes to commit."
|
|
72
|
+
git push || echo "Nothing to push."
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Kubenumerate output files
|
|
2
|
+
kubenumerate_results_v1_0.xlsx
|
|
3
|
+
enhanced.xlsx
|
|
4
|
+
kubectl_output/
|
|
5
|
+
kubenumerate_out/
|
|
6
|
+
kubenumerate_example_output/
|
|
7
|
+
|
|
8
|
+
# Python
|
|
9
|
+
__pycache__/
|
|
10
|
+
*.py[cod]
|
|
11
|
+
*$py.class
|
|
12
|
+
*.so
|
|
13
|
+
.Python
|
|
14
|
+
build/
|
|
15
|
+
develop-eggs/
|
|
16
|
+
dist/
|
|
17
|
+
downloads/
|
|
18
|
+
eggs/
|
|
19
|
+
.eggs/
|
|
20
|
+
lib/
|
|
21
|
+
lib64/
|
|
22
|
+
parts/
|
|
23
|
+
sdist/
|
|
24
|
+
var/
|
|
25
|
+
wheels/
|
|
26
|
+
*.egg-info/
|
|
27
|
+
.installed.cfg
|
|
28
|
+
*.egg
|
|
29
|
+
MANIFEST
|
|
30
|
+
|
|
31
|
+
# Virtual environments
|
|
32
|
+
/venv/
|
|
33
|
+
/venv/
|
|
34
|
+
env/
|
|
35
|
+
ENV/
|
|
36
|
+
env.bak/
|
|
37
|
+
venv.bak/
|
|
38
|
+
|
|
39
|
+
# IDE
|
|
40
|
+
.idea/
|
|
41
|
+
.vscode/
|
|
42
|
+
*.swp
|
|
43
|
+
*.swo
|
|
44
|
+
*~
|
|
45
|
+
|
|
46
|
+
# Test and coverage
|
|
47
|
+
.coverage
|
|
48
|
+
.coverage.*
|
|
49
|
+
coverage.xml
|
|
50
|
+
*.cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
htmlcov/
|
|
54
|
+
.tox/
|
|
55
|
+
.cache
|
|
56
|
+
nosetests.xml
|
|
57
|
+
coverage.xml
|
|
58
|
+
|
|
59
|
+
# Security scan results
|
|
60
|
+
bandit-report.json
|
|
61
|
+
safety-report.json
|
|
62
|
+
trivy-results.sarif
|
|
63
|
+
|
|
64
|
+
# Logs
|
|
65
|
+
logging
|
|
66
|
+
*.log
|
|
67
|
+
|
|
68
|
+
# Temporary files
|
|
69
|
+
re
|
|
70
|
+
sys
|
|
71
|
+
test_issues_dict.txt
|
|
72
|
+
|
|
73
|
+
# OS
|
|
74
|
+
.DS_Store
|
|
75
|
+
Thumbs.db
|
|
76
|
+
|
|
77
|
+
# Project specific
|
|
78
|
+
/rbac-police-test/
|
|
79
|
+
role_audit.json
|
|
80
|
+
cluster_role_audit.json
|
|
81
|
+
test_issues_dict.txt
|
|
82
|
+
enumeraga.code-workspace
|
|
83
|
+
.github/copilot-instructions.md
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<component name="InspectionProjectProfileManager">
|
|
2
|
+
<profile version="1.0">
|
|
3
|
+
<option name="myName" value="Project Default" />
|
|
4
|
+
<inspection_tool class="HttpUrlsUsage" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
|
5
|
+
<option name="ignoredUrls">
|
|
6
|
+
<list>
|
|
7
|
+
<option value="http://%s" />
|
|
8
|
+
<option value="http://0.0.0.0" />
|
|
9
|
+
<option value="http://127.0.0.1" />
|
|
10
|
+
<option value="http://activemq.apache.org/schema/" />
|
|
11
|
+
<option value="http://cxf.apache.org/schemas/" />
|
|
12
|
+
<option value="http://java.sun.com/" />
|
|
13
|
+
<option value="http://javafx.com/fxml" />
|
|
14
|
+
<option value="http://javafx.com/javafx/" />
|
|
15
|
+
<option value="http://json-schema.org/draft" />
|
|
16
|
+
<option value="http://localhost" />
|
|
17
|
+
<option value="http://maven.apache.org/POM/" />
|
|
18
|
+
<option value="http://maven.apache.org/xsd/" />
|
|
19
|
+
<option value="http://primefaces.org/ui" />
|
|
20
|
+
<option value="http://schema.cloudfoundry.org/spring/" />
|
|
21
|
+
<option value="http://schemas.xmlsoap.org/" />
|
|
22
|
+
<option value="http://tiles.apache.org/" />
|
|
23
|
+
<option value="http://www.ibm.com/webservices/xsd" />
|
|
24
|
+
<option value="http://www.jboss.com/xml/ns/" />
|
|
25
|
+
<option value="http://www.jboss.org/j2ee/schema/" />
|
|
26
|
+
<option value="http://www.springframework.org/schema/" />
|
|
27
|
+
<option value="http://www.springframework.org/security/tags" />
|
|
28
|
+
<option value="http://www.springframework.org/tags" />
|
|
29
|
+
<option value="http://www.thymeleaf.org" />
|
|
30
|
+
<option value="http://www.w3.org/" />
|
|
31
|
+
<option value="http://xmlns.jcp.org/" />
|
|
32
|
+
</list>
|
|
33
|
+
</option>
|
|
34
|
+
</inspection_tool>
|
|
35
|
+
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
|
36
|
+
<option name="ignoredPackages">
|
|
37
|
+
<value>
|
|
38
|
+
<list size="7">
|
|
39
|
+
<item index="0" class="java.lang.String" itemvalue="pandas" />
|
|
40
|
+
<item index="1" class="java.lang.String" itemvalue="pyarrow" />
|
|
41
|
+
<item index="2" class="java.lang.String" itemvalue="pyyaml" />
|
|
42
|
+
<item index="3" class="java.lang.String" itemvalue="bottleneck" />
|
|
43
|
+
<item index="4" class="java.lang.String" itemvalue="xlsxwriter" />
|
|
44
|
+
<item index="5" class="java.lang.String" itemvalue="colorama" />
|
|
45
|
+
<item index="6" class="java.lang.String" itemvalue="packaging" />
|
|
46
|
+
</list>
|
|
47
|
+
</value>
|
|
48
|
+
</option>
|
|
49
|
+
</inspection_tool>
|
|
50
|
+
<inspection_tool class="PyPep8Inspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
|
51
|
+
<option name="ignoredErrors">
|
|
52
|
+
<list>
|
|
53
|
+
<option value="E221" />
|
|
54
|
+
<option value="W605" />
|
|
55
|
+
</list>
|
|
56
|
+
</option>
|
|
57
|
+
</inspection_tool>
|
|
58
|
+
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
|
59
|
+
<option name="ignoredErrors">
|
|
60
|
+
<list>
|
|
61
|
+
<option value="N806" />
|
|
62
|
+
</list>
|
|
63
|
+
</option>
|
|
64
|
+
</inspection_tool>
|
|
65
|
+
<inspection_tool class="PyTypeCheckerInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
66
|
+
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
|
67
|
+
<option name="ignoredIdentifiers">
|
|
68
|
+
<list>
|
|
69
|
+
<option value="str.*" />
|
|
70
|
+
</list>
|
|
71
|
+
</option>
|
|
72
|
+
</inspection_tool>
|
|
73
|
+
</profile>
|
|
74
|
+
</component>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="WEB_MODULE" version="4">
|
|
3
|
+
<component name="FacetManager">
|
|
4
|
+
<facet type="Python" name="Python facet">
|
|
5
|
+
<configuration sdkName="Python 3.11" />
|
|
6
|
+
</facet>
|
|
7
|
+
</component>
|
|
8
|
+
<component name="Go" enabled="true" />
|
|
9
|
+
<component name="NewModuleRootManager">
|
|
10
|
+
<content url="file://$MODULE_DIR$">
|
|
11
|
+
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
|
12
|
+
</content>
|
|
13
|
+
<orderEntry type="jdk" jdkName="Python 3.11.2 WSL (Debian): (/home/g/.virtualenvs/kubenumerate/bin/python)" jdkType="Python SDK" />
|
|
14
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
15
|
+
<orderEntry type="library" name="Python 3.11 interpreter library" level="application" />
|
|
16
|
+
<orderEntry type="module" module-name="enumeraga" />
|
|
17
|
+
</component>
|
|
18
|
+
</module>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="MaterialThemeProjectNewConfig">
|
|
4
|
+
<option name="metadata">
|
|
5
|
+
<MTProjectMetadataState>
|
|
6
|
+
<option name="migrated" value="true" />
|
|
7
|
+
<option name="pristineConfig" value="false" />
|
|
8
|
+
<option name="userId" value="-70070562:18f57c6fe97:-7ffe" />
|
|
9
|
+
</MTProjectMetadataState>
|
|
10
|
+
</option>
|
|
11
|
+
</component>
|
|
12
|
+
</project>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="Black">
|
|
4
|
+
<option name="sdkName" value="Python 3.11 (kubenumerate)" />
|
|
5
|
+
</component>
|
|
6
|
+
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11.2 WSL (Debian): (/home/g/.virtualenvs/kubenumerate/bin/python)" project-jdk-type="Python SDK" />
|
|
7
|
+
</project>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="ProjectModuleManager">
|
|
4
|
+
<modules>
|
|
5
|
+
<module fileurl="file://$PROJECT_DIR$/../enumeraga/.idea/enumeraga.iml" filepath="$PROJECT_DIR$/../enumeraga/.idea/enumeraga.iml" />
|
|
6
|
+
<module fileurl="file://$PROJECT_DIR$/.idea/kubenumerate.iml" filepath="$PROJECT_DIR$/.idea/kubenumerate.iml" />
|
|
7
|
+
</modules>
|
|
8
|
+
</component>
|
|
9
|
+
</project>
|