Skip to content

Commit dde2eb4

Browse files
committed
feat(release): initial release v0.0.1 of Hatiyar security toolkit
- Security toolkit for penetration testing and vulnerability assessment - Cloud enumeration modules (AWS, Azure, GCP) - Kubernetes enumeration modules - CVE exploitation modules - Web interface for result visualization - Comprehensive documentation
1 parent 54e57a1 commit dde2eb4

File tree

3 files changed

+76
-172
lines changed

3 files changed

+76
-172
lines changed

.github/workflows/release.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Release Hatiyar to PyPI
2+
3+
permissions:
4+
contents: write
5+
issues: write
6+
pull-requests: write
7+
8+
on:
9+
push:
10+
branches:
11+
- main # Only release from main branch
12+
workflow_dispatch: # Allow manual trigger
13+
inputs:
14+
release_type:
15+
description: 'Release type (leave empty for auto)'
16+
required: false
17+
type: choice
18+
options:
19+
- '*'
20+
- patch
21+
- minor
22+
- major
23+
24+
jobs:
25+
release:
26+
name: Semantic Release
27+
runs-on: ubuntu-latest
28+
if: ${{ !contains(github.event.head_commit.message, 'chore(release)') }}
29+
30+
steps:
31+
- name: Checkout code
32+
uses: actions/checkout@v5
33+
with:
34+
fetch-depth: 0
35+
token: ${{ secrets.GITHUB_TOKEN }}
36+
37+
- name: Set up Python
38+
uses: actions/setup-python@v5
39+
with:
40+
python-version: '3.12'
41+
42+
- name: Set up uv
43+
uses: astral-sh/setup-uv@v7
44+
with:
45+
enable-cache: true
46+
47+
- name: Install dependencies
48+
run: |
49+
uv sync --all-extras
50+
51+
- name: Build with uv
52+
run: uv build --no-sources
53+
54+
- name: Publish to PyPI
55+
if: github.ref == 'refs/heads/main'
56+
env:
57+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
58+
run: uv publish
59+
60+
- name: Run latest-tag
61+
uses: EndBug/latest-tag@latest
62+
with:
63+
# You can change the name of the tag or branch with this input.
64+
# Default: 'latest'
65+
ref: latest
66+
# If a description is provided, the action will use it to create an annotated tag. If none is given, the action will create a lightweight tag.
67+
# Default: ''
68+
description: The latest release.
69+
# Force-update a branch instead of using a tag.
70+
# Default: false
71+
force-branch: false
72+
# Directory to use when executing git commands
73+
# Default: '${{ github.workspace }}'
74+
git-directory: '${{ github.workspace }}'

.github/workflows/semantic-release.yml

Lines changed: 0 additions & 98 deletions
This file was deleted.

pyproject.toml

Lines changed: 2 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "hatiyar"
3-
version = "1.0.1"
3+
version = "0.0.1"
44
description = "security toolkit designed for penetration testing, vulnerability assessment, and security research."
55
readme = "README.md"
66
requires-python = ">=3.9"
@@ -20,7 +20,6 @@ dependencies = [
2020
"mypy>=1.18.2",
2121
"pre-commit>=4.3.0",
2222
"pytest>=8.4.2",
23-
"python-semantic-release>=9.14.0",
2423
"types-pyyaml>=6.0.12.20250915",
2524
"types-requests>=2.32.4.20250913",
2625
"ruff>=0.8.0",
@@ -46,91 +45,20 @@ include = ["hatiyar*"]
4645
[tool.setuptools.package-data]
4746
"*" = ["*.yaml"]
4847

49-
[tool.semantic_release]
50-
# Version variables to update
51-
version_toml = ["pyproject.toml:project.version"]
52-
version_variables = [
53-
"src/hatiyar/__init__.py:__version__",
54-
]
55-
56-
# Disable default PyPI upload (we use uv publish in workflow)
57-
upload_to_pypi = false
58-
upload_to_release = true
59-
60-
# Build command - build with uv
61-
build_command = "uv build --no-sources"
62-
63-
# Commit configuration
64-
commit_message = "chore(release): {version}\n\nAutomatically generated by python-semantic-release"
65-
commit_author = "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
66-
commit_parser = "conventional"
67-
68-
# Tag format
69-
tag_format = "v{version}"
70-
71-
# Version constraints
72-
major_on_zero = true
73-
allow_zero_version = true
74-
75-
# Branch configuration - only main branch for releases
76-
[tool.semantic_release.branches.main]
77-
match = "(main|master)"
78-
prerelease = false
79-
80-
# Commit parser options
81-
[tool.semantic_release.commit_parser_options]
82-
allowed_tags = [
83-
"build", "chore", "ci", "docs", "feat", "fix",
84-
"perf", "refactor", "style", "test", "revert"
85-
]
86-
minor_tags = ["feat"]
87-
patch_tags = ["fix", "perf", "refactor", "docs"]
88-
8948
# Pytest configuration
9049
[tool.pytest.ini_options]
9150
testpaths = ["tests"]
9251
python_files = ["test_*.py"]
9352
python_classes = ["Test*"]
9453
python_functions = ["test_*"]
95-
addopts = [
96-
"--verbose",
97-
"--cov=src/hatiyar",
98-
"--cov-report=html",
99-
"--cov-report=term-missing",
100-
"--cov-fail-under=0", # Start at 0%, increase gradually
101-
]
54+
addopts = ["--verbose"]
10255
markers = [
10356
"unit: Unit tests",
10457
"integration: Integration tests",
10558
"e2e: End-to-end tests",
106-
"benchmark: Performance benchmark tests",
107-
"slow: Tests that take a long time",
108-
]
109-
110-
# Coverage configuration
111-
[tool.coverage.run]
112-
source = ["src/hatiyar"]
113-
omit = [
114-
"*/tests/*",
115-
"*/test_*.py",
116-
"*/__pycache__/*",
117-
"*/site-packages/*",
118-
]
119-
120-
[tool.coverage.report]
121-
exclude_lines = [
122-
"pragma: no cover",
123-
"def __repr__",
124-
"raise AssertionError",
125-
"raise NotImplementedError",
126-
"if __name__ == .__main__.:",
127-
"if TYPE_CHECKING:",
128-
"class .*\\bProtocol\\):",
129-
"@(abc\\.)?abstractmethod",
13059
]
13160

13261
[dependency-groups]
13362
dev = [
13463
"moto>=1.3.6",
135-
"pytest-cov>=7.0.0",
13664
]

0 commit comments

Comments
 (0)