API Reference

This section provides detailed API documentation for the Git Timesheet Generator.

Command Line Interface

git_timesheet.cli.generate_timesheet(base_dir, since, until, repos, output, author, timezone, output_file, session_timeout)[source]

Generate a timesheet from git commit history

git_timesheet.cli.initialize_config()[source]

Initialize configuration file

git_timesheet.cli.main()[source]

Configuration

git_timesheet.config.get_config()[source]

Load configuration from file and return merged config with defaults

Git Utilities

git_timesheet.git_utils.estimate_time_spent(commits, repo_name, session_timeout_minutes=60)[source]

Estimate time spent on commits based on commit messages and frequency.

git_timesheet.git_utils.get_git_log(repo_path, since=None, until=None, author=None)[source]

Get git log for a repository with author date and commit message.

git_timesheet.git_utils.get_git_repos(base_dir)[source]

Find git repositories in the specified directory.

Timezone Utilities

git_timesheet.timezone_utils.convert_to_timezone(date, timezone_str='UTC')[source]

Convert datetime to specified timezone.

git_timesheet.timezone_utils.get_timezone_abbr(date)[source]

Get timezone abbreviation (like EDT, EST, CST) from a datetime object.

Formatters

git_timesheet.formatters.format_csv(weeks, time_entries)[source]

Format timesheet as CSV.

git_timesheet.formatters.format_markdown(weeks)[source]

Format timesheet as Markdown.

git_timesheet.formatters.format_text(weeks)[source]

Format timesheet as plain text.

git_timesheet.formatters.format_timesheet(time_entries, output_format='text', timezone_str='UTC', author_filter='mcgarrah')[source]

Format time entries into a weekly timesheet.