Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9811bc3
Add end_days_before arg to set the finish date of script instead of c…
gharghi Nov 8, 2022
ce8d42d
Update Readme
gharghi Nov 8, 2022
3e7b2c6
Add strat_date and end_date options
gharghi Nov 9, 2022
4336887
Merge branch 'main' of github.com:gharghi/github-activity-generator i…
gharghi Nov 9, 2022
3209433
Reformat code
gharghi Nov 9, 2022
e669f8d
Update README.md
gharghi Nov 9, 2022
0d7feab
Getting this staged rewrite into GitHub finally...
johnwyles Sep 4, 2024
4c8fba2
Complete overhaul with Claude rewriting the whole thing
johnwyles Jul 7, 2025
7dc62b4
Transform into professional Python package with comprehensive features
johnwyles Jul 7, 2025
bbe99cb
Removal of legacy contribute scripts
johnwyles Jul 8, 2025
50c1592
Improve UX and remove backward compatibility code
johnwyles Jul 8, 2025
be40bad
Fix failing tests and remove obsolete test files
johnwyles Jul 8, 2025
23d3ea7
Remove old Python 2.7 workflow file
johnwyles Jul 8, 2025
66685ac
Fix all ruff linter errors and improve code quality
johnwyles Jul 8, 2025
1fd3381
Change license to MIT and fix project metadata
johnwyles Jul 8, 2025
07baf57
docs: Update README to reflect v2.0 rewrite and change license to MIT
johnwyles Jul 8, 2025
6a5f77d
docs: Add disclaimer about not misleading employers/clients
johnwyles Jul 8, 2025
07b0487
fix: Remove old README from .github directory
johnwyles Jul 8, 2025
f8c32f7
Cheesy stuff and Markdown linting resolved
johnwyles Jul 8, 2025
b5735b2
Merge pull request #1 from johnwyles/Claude_Rewrite_2
johnwyles Jul 8, 2025
ea824be
feat: Add behavior patterns for realistic commit activity
Jul 9, 2025
a9b5506
chore: Remove test script from root directory
Jul 9, 2025
3f80c59
fix: Apply Black formatting and remove unused import
Jul 9, 2025
b9b148a
fix: Resolve linting issues for CI
Jul 9, 2025
0ce4d2e
fix: Resolve CI failures for Python 3.8 and tests
Jul 9, 2025
798e25f
fix: Resolve remaining CI issues
Jul 9, 2025
cfe4a85
fix: Apply Black formatting and fix Bandit config
Jul 9, 2025
34df254
fix: Final CI fixes for all platforms and Python versions
Jul 9, 2025
8b7bd70
fix: Install setuptools before package and configure Bandit
Jul 9, 2025
042675b
fix: Change from editable to regular install in CI
Jul 9, 2025
2f7180c
fix: Install dependencies separately to avoid build backend issues
Jul 9, 2025
3bdd53f
fix: Use setuptools.build_meta instead of build_backend
Jul 9, 2025
2c419e0
fix: Add missing dependencies and fix Black formatting
Jul 9, 2025
28a3d60
fix: Add tqdm dependency to fix CI failures
Jul 9, 2025
ef91334
fix: Remove unused noqa directives
Jul 9, 2025
c0e25e7
fix: Add types-tqdm and fix MyPy abstract class error
Jul 9, 2025
54bac40
fix: Make test less flaky and fix MyPy CI check
Jul 9, 2025
9f9d92e
fix: Relax MyPy settings to fix CI
Jul 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

# Python files
[*.py]
max_line_length = 88
quote_type = double

# YAML files
[*.{yml,yaml}]
indent_size = 2

# JSON files
[*.json]
indent_size = 2

# TOML files
[*.toml]
indent_size = 4

# Markdown files
[*.md]
trim_trailing_whitespace = false
max_line_length = 80

# Makefile
[Makefile]
indent_style = tab

# Shell scripts
[*.sh]
indent_size = 2

# Git config files
[.git*]
indent_size = 2

# Documentation
[*.rst]
indent_size = 3

# Configuration files
[*.{ini,cfg}]
indent_size = 4
94 changes: 0 additions & 94 deletions .github/README.md

This file was deleted.

23 changes: 0 additions & 23 deletions .github/workflows/build.yml

This file was deleted.

156 changes: 156 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
name: CI

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
workflow_dispatch:

env:
PYTHON_VERSION: "3.11"

jobs:
lint:
name: Lint & Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Cache pip packages
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel build
pip install pytest pytest-cov pytest-mock black ruff mypy types-PyYAML types-tqdm hypothesis
pip install rich PyYAML holidays tqdm
pip install .

- name: Run Black
run: black --check src tests

- name: Run Ruff
run: ruff check src tests

- name: Run MyPy
run: mypy src

test:
name: Test Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
os: [ubuntu-latest, windows-latest, macos-latest]
exclude:
- os: windows-latest
python-version: "3.8"
- os: macos-latest
python-version: "3.8"

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Cache pip packages
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel build
pip install pytest pytest-cov pytest-mock black ruff mypy types-PyYAML types-tqdm hypothesis
pip install rich PyYAML holidays tqdm
pip install .

- name: Run tests with coverage
run: |
pytest -v --cov --cov-report=xml --cov-report=term

- name: Upload coverage to Codecov
if: matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false

security:
name: Security Scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install bandit[toml] safety
sudo apt-get update && sudo apt-get install -y jq

- name: Run Bandit security scan
run: |
# Run Bandit with our configured skips
bandit -r src -f json -o bandit-report.json -s B311,B404,B603,B607 || true
# Check if there are any high severity issues
if jq -e '.results | map(select(.issue_severity == "HIGH")) | length > 0' bandit-report.json > /dev/null 2>&1; then
echo "High severity security issues found"
exit 1
fi

- name: Check for known vulnerabilities
run: safety check --json

build:
name: Build Distribution
runs-on: ubuntu-latest
needs: [lint, test]
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build twine

- name: Build package
run: python -m build

- name: Check distribution
run: twine check dist/*

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Loading