Skip to content

Commit ce80272

Browse files
committed
feat: add green-house-migration project
- Added complete green-house-migration project with 180+ files - Removed internal .git directory to integrate with main repository - Includes comprehensive migration tools and documentation - Features dashboard, API routes, scripts, and monitoring - Contains legacy Greenhouse integration and TeamTailor migration - Added complete documentation structure and security guides - Includes development and production scripts - Added test fixtures and configuration files This project provides a complete migration solution from Greenhouse to TeamTailor with comprehensive tooling and documentation.
1 parent 232d3b8 commit ce80272

File tree

180 files changed

+35223
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

180 files changed

+35223
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Bandit configuration file
2+
# See: https://bandit.readthedocs.io/en/latest/config.html
3+
4+
exclude_dirs: ["tests", "legacy", "scripts/development"]
5+
6+
skips: ["B101", "B601", "B102", "B103"]
7+
8+
# Test files and directories
9+
tests: ["test_*.py", "*_test.py"]
10+
11+
# Target Python versions
12+
target_version: ["py38", "py39", "py310", "py311", "py312"]
13+
14+
# Output format
15+
output_format: json
16+
output_file: bandit-report.json
17+
18+
# Verbose output
19+
verbose: true
20+
21+
# Debug mode
22+
debug: false
23+
24+
# Profile to use
25+
profile: default
26+
27+
# Aggressive mode
28+
aggressive: false
29+
30+
# Recursive directory scanning
31+
recursive: true
32+
33+
# Number of processes to use
34+
jobs: 1
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
# Unix-style newlines with a newline ending every file*]
7+
end_of_line = lf
8+
insert_final_newline = true
9+
charset = utf-8im_trailing_whitespace = true
10+
11+
# Python files
12+
[*.py]
13+
indent_style = space
14+
indent_size =4
15+
16+
# YAML files
17+
[*.[object Object]yml,yaml}]
18+
indent_style = space
19+
indent_size =2
20+
21+
# JSON files
22+
[*.json]
23+
indent_style = space
24+
indent_size = 2
25+
26+
# Markdown files
27+
[*.md]
28+
trim_trailing_whitespace = false
29+
30+
# JavaScript files
31+
[*.{js,jsx,ts,tsx}]
32+
indent_style = space
33+
indent_size =2
34+
35+
# HTML files
36+
[*.html]
37+
indent_style = space
38+
indent_size = 2# CSS files
39+
[*.css]
40+
indent_style = space
41+
indent_size = 2
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
pip-wheel-metadata/
24+
share/python-wheels/
25+
*.egg-info/
26+
.installed.cfg
27+
*.egg
28+
MANIFEST
29+
30+
# PyInstaller
31+
# Usually these files are written by a python script from a template
32+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
33+
*.manifest
34+
*.spec
35+
36+
# Installer logs
37+
pip-log.txt
38+
pip-delete-this-directory.txt
39+
40+
# Unit test / coverage reports
41+
htmlcov/
42+
.tox/
43+
.nox/
44+
.coverage
45+
.coverage.*
46+
.cache
47+
nosetests.xml
48+
coverage.xml
49+
*.cover
50+
*.py,cover
51+
.hypothesis/
52+
.pytest_cache/
53+
54+
# Translations
55+
*.mo
56+
*.pot
57+
58+
# Django stuff:
59+
*.log
60+
local_settings.py
61+
db.sqlite3
62+
db.sqlite3-journal
63+
64+
# Flask stuff:
65+
instance/
66+
.webassets-cache
67+
68+
# Scrapy stuff:
69+
.scrapy
70+
71+
# Sphinx documentation
72+
docs/_build/
73+
74+
# PyBuilder
75+
target/
76+
77+
# Jupyter Notebook
78+
.ipynb_checkpoints
79+
80+
# IPython
81+
profile_default/
82+
ipython_config.py
83+
84+
# pyenv
85+
.python-version
86+
87+
# pipenv
88+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
90+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
91+
# install all needed dependencies.
92+
#Pipfile.lock
93+
94+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
95+
__pypackages__/
96+
97+
# Celery stuff
98+
celerybeat-schedule
99+
celerybeat.pid
100+
101+
# SageMath parsed files
102+
*.sage.py
103+
104+
# Environments
105+
.env
106+
.venv
107+
env/
108+
venv/
109+
ENV/
110+
env.bak/
111+
venv.bak/
112+
113+
# Spyder project settings
114+
.spyderproject
115+
.spyproject
116+
117+
# Rope project settings
118+
.ropeproject
119+
120+
# mkdocs documentation
121+
/site
122+
123+
# mypy
124+
.mypy_cache/
125+
.dmypy.json
126+
dmypy.json
127+
128+
# Pyre type checker
129+
.pyre/
130+
131+
# Project specific
132+
data/
133+
exports/
134+
imports/
135+
backups/
136+
logs/
137+
*.log
138+
*.sqlite
139+
*.db
140+
141+
# IDE
142+
.vscode/
143+
.idea/
144+
*.swp
145+
*.swo
146+
*~
147+
148+
# OS
149+
.DS_Store
150+
Thumbs.db
151+
152+
# Security
153+
*.key
154+
*.pem
155+
*.p12
156+
*.pfx
157+
158+
# Temporary files
159+
tmp/
160+
temp/
161+
*.tmp
162+
*.temp
163+
164+
# Test files
165+
test_*.py
166+
*_test.py
167+
168+
# Documentation builds
169+
docs/build/
170+
docs/_build/
171+
172+
# Coverage reports
173+
.coverage
174+
coverage.xml
175+
htmlcov/
176+
177+
# Linting
178+
.flake8
179+
.pylintrc
180+
181+
# Pre-commit
182+
.pre-commit-config.yaml
183+
184+
# Security reports
185+
bandit*.json
186+
security-reports/
187+
*.security.json
188+
189+
# Docker
190+
.dockerignore
191+
docker-compose.override.yml
192+
193+
# Kubernetes
194+
*.yaml
195+
*.yml
196+
!docker-compose.yml
197+
!docker-compose.yaml
198+
199+
# Terraform
200+
*.tfstate
201+
*.tfstate.*
202+
.terraform/
203+
204+
# Local development
205+
.local/
206+
local/
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Snyk configuration file
2+
# This file configures Snyk security scanning for the Greenhouse to TeamTailor migration project
3+
4+
version: v1.25.0
5+
ignore:
6+
# Ignore specific vulnerabilities that are false positives or acceptable risks
7+
# Format: <vulnerability_id>:
8+
# - <path_to_vulnerable_file>:
9+
# reason: <reason_for_ignoring>
10+
# expires: <expiration_date>
11+
12+
# Example: Ignore a specific vulnerability in test files
13+
# 'SNYK-PYTHON-REQUESTS-1061915':
14+
# - 'tests/fixtures/*':
15+
# reason: 'Test data only, not used in production'
16+
# expires: 2024-12-31T00:00:00.000Z
17+
18+
# Policy for different severity levels
19+
policy:
20+
# High severity vulnerabilities should be fixed immediately
21+
high:
22+
action: fail
23+
message: "High severity vulnerabilities found. Please fix before deployment."
24+
25+
# Medium severity vulnerabilities should be reviewed
26+
medium:
27+
action: warn
28+
message: "Medium severity vulnerabilities found. Review and fix when possible."
29+
30+
# Low severity vulnerabilities are informational
31+
low:
32+
action: info
33+
message: "Low severity vulnerabilities found. Consider fixing in future updates."
34+
35+
# Custom rules for the project
36+
rules:
37+
# Allow specific patterns in test files
38+
- name: "Allow test data patterns"
39+
pattern: "tests/**/*"
40+
severity: low
41+
message: "Test files may contain intentionally vulnerable patterns for testing purposes"
42+
43+
# Allow specific patterns in mock data
44+
- name: "Allow mock data patterns"
45+
pattern: "scripts/development/generate_mock_data.py"
46+
severity: low
47+
message: "Mock data generation may contain test patterns"
48+
49+
# Exclude specific directories from scanning
50+
exclude:
51+
- "data/" # Exclude data directory as it contains exported data
52+
- "logs/" # Exclude logs directory
53+
- "node_modules/" # Exclude node_modules if any
54+
- ".venv/" # Exclude virtual environment
55+
- "__pycache__/" # Exclude Python cache
56+
- "*.pyc" # Exclude compiled Python files
57+
58+
# Custom security policies for TeamTailor integration
59+
teamtailor:
60+
# Ensure API tokens are not hardcoded
61+
- rule: "no-hardcoded-tokens"
62+
pattern: '.*token.*=.*[''"][^''"]*[''"]'
63+
severity: high
64+
message: "API tokens should not be hardcoded in source code"
65+
66+
# Ensure proper rate limiting
67+
- rule: "rate-limiting-check"
68+
pattern: "time.sleep\\([0-9]*\\.?[0-9]*\\)"
69+
severity: medium
70+
message: "Ensure proper rate limiting is implemented for API calls"
71+
72+
# Docker security policies
73+
docker:
74+
# Ensure base images are from trusted sources
75+
- rule: "trusted-base-image"
76+
pattern: "FROM (alpine|python|node):[0-9]+\\.[0-9]+"
77+
severity: medium
78+
message: "Use specific version tags for base images"
79+
80+
# Ensure no secrets in Dockerfile
81+
- rule: "no-secrets-in-dockerfile"
82+
pattern: '(ENV|ARG).*TOKEN.*=.*[''"][^''"]*[''"]'
83+
severity: high
84+
message: "Do not hardcode secrets in Dockerfile"

0 commit comments

Comments
 (0)