[[bin]]
name = "git-iris"
path = "src/main.rs"
[dependencies.anyhow]
version = "1.0.86"
[dependencies.arboard]
version = "3.4"
[dependencies.async-trait]
version = "0.1.88"
[dependencies.chrono]
features = ["serde"]
version = "0.4.38"
[dependencies.clap]
features = ["derive", "cargo"]
version = "4.5.36"
[dependencies.clap_complete]
version = "4.5"
[dependencies.colored]
version = "3.0.0"
[dependencies.crossterm]
version = "0.28.1"
[dependencies.dirs]
version = "6.0.0"
[dependencies.futures]
version = "0.3.30"
[dependencies.git2]
version = "0.20.1"
[dependencies.ignore]
version = "0.4"
[dependencies.indicatif]
version = "0.18.3"
[dependencies.log]
version = "0.4.27"
[dependencies.lru]
version = "0.16.2"
[dependencies.notify]
version = "8.0"
[dependencies.notify-debouncer-full]
version = "0.6.0"
[dependencies.parking_lot]
version = "0.12.1"
[dependencies.pulldown-cmark]
version = "0.13"
[dependencies.rand]
version = "0.9.0"
[dependencies.ratatui]
version = "0.29.0"
[dependencies.regex]
version = "1.10.6"
[dependencies.reqwest]
features = ["json"]
version = "0.12.15"
[dependencies.rig-core]
features = ["derive"]
version = "0.27.0"
[dependencies.schemars]
version = "1.0"
[dependencies.serde]
features = ["derive"]
version = "1.0.209"
[dependencies.serde_json]
version = "1.0.127"
[dependencies.strum]
version = "0.27.1"
[dependencies.strum_macros]
version = "0.27.1"
[dependencies.syntect]
default-features = false
features = ["default-syntaxes", "default-themes", "regex-onig"]
version = "5.2"
[dependencies.tempfile]
version = "3.19.1"
[dependencies.textwrap]
version = "0.16.1"
[dependencies.thiserror]
version = "2.0.4"
[dependencies.tokio]
features = ["full"]
version = "1.44.2"
[dependencies.tokio-util]
version = "0.7"
[dependencies.toml]
version = "0.9.10"
[dependencies.tracing]
version = "0.1.40"
[dependencies.tracing-subscriber]
features = ["env-filter", "fmt", "time", "json", "chrono"]
version = "0.3.18"
[dependencies.tui-textarea]
version = "0.7.0"
[dependencies.unicode-width]
version = "0.2"
[dependencies.url]
version = "2.5.0"
[dependencies.uuid]
features = ["v4", "serde"]
version = "1.11.0"
[dev-dependencies.dotenv]
version = "0.15.0"
[features]
integration = []
[lib]
name = "git_iris"
path = "src/lib.rs"
[lints.clippy.all]
level = "deny"
priority = 0
[lints.clippy.as_conversions]
level = "warn"
priority = 22
[lints.clippy.async_yields_async]
level = "warn"
priority = 32
[lints.clippy.cast_possible_truncation]
level = "warn"
priority = 22
[lints.clippy.cast_precision_loss]
level = "warn"
priority = 22
[lints.clippy.cast_sign_loss]
level = "warn"
priority = 22
[lints.clippy.cloned_instead_of_copied]
level = "warn"
priority = 36
[lints.clippy.cognitive_complexity]
level = "warn"
priority = 34
[lints.clippy.dbg_macro]
level = "warn"
priority = 31
[lints.clippy.enum_glob_use]
level = "deny"
priority = 30
[lints.clippy.flat_map_option]
level = "warn"
priority = 36
[lints.clippy.from_iter_instead_of_collect]
level = "warn"
priority = 36
[lints.clippy.future_not_send]
level = "warn"
priority = 32
[lints.clippy.if_not_else]
level = "warn"
priority = 36
[lints.clippy.implicit_clone]
level = "warn"
priority = 33
[lints.clippy.inefficient_to_string]
level = "warn"
priority = 33
[lints.clippy.manual_let_else]
level = "warn"
priority = 36
[lints.clippy.match_same_arms]
level = "warn"
priority = 36
[lints.clippy.missing_errors_doc]
level = "allow"
priority = 20
[lints.clippy.missing_panics_doc]
level = "allow"
priority = 20
[lints.clippy.missing_safety_doc]
level = "allow"
priority = 20
[lints.clippy.module_name_repetitions]
level = "allow"
priority = 21
[lints.clippy.multiple_crate_versions]
level = "allow"
priority = 40
[lints.clippy.must_use_candidate]
level = "allow"
priority = 21
[lints.clippy.needless_continue]
level = "warn"
priority = 36
[lints.clippy.needless_pass_by_value]
level = "warn"
priority = 36
[lints.clippy.out_of_bounds_indexing]
level = "deny"
priority = 30
[lints.clippy.pedantic]
level = "deny"
priority = 10
[lints.clippy.perf]
level = "deny"
priority = 1
[lints.clippy.redundant_else]
level = "warn"
priority = 36
[lints.clippy.result_large_err]
level = "warn"
priority = 35
[lints.clippy.semicolon_if_nothing_returned]
level = "warn"
priority = 36
[lints.clippy.significant_drop_tightening]
level = "allow"
priority = 21
[lints.clippy.string_lit_as_bytes]
level = "warn"
priority = 33
[lints.clippy.style]
level = "warn"
priority = 1
[lints.clippy.todo]
level = "warn"
priority = 31
[lints.clippy.too_many_lines]
level = "warn"
priority = 34
[lints.clippy.trivially_copy_pass_by_ref]
level = "warn"
priority = 36
[lints.clippy.undocumented_unsafe_blocks]
level = "deny"
priority = 30
[lints.clippy.unwrap_used]
level = "deny"
priority = 30
[lints.rust]
unsafe_code = "forbid"
[lints.rust.missing_docs]
level = "allow"
priority = 1
[package]
authors = ["Stefanie Jane <stef@hyperbliss.tech>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["command-line-utilities", "development-tools"]
description = "AI-powered Git workflow assistant for smart commits, code reviews, changelogs, and release notes"
edition = "2024"
exclude = ["docs/", "docker/", "homebrew/", "aur/", ".github/", "*.md", "!README.md", "CHANGELOG.md"]
homepage = "https://github.com/hyperb1iss/git-iris"
keywords = ["git", "ai", "cli", "devtools", "productivity"]
license = "Apache-2.0"
name = "git-iris"
readme = "README.md"
repository = "https://github.com/hyperb1iss/git-iris"
version = "2.0.4"
[package.metadata.deb]
assets = [["target/release/git-iris", "usr/bin/", "755"], ["README.md", "usr/share/doc/git-iris/README", "644"], ["git-iris.1", "usr/share/man/man1/git-iris.1", "644"]]
copyright = "2024, Git-Iris Contributors <https://github.com/hyperb1iss/git-iris>"
depends = "$auto"
extended-description = """
Git-Iris is an AI-powered tool designed to generate meaningful and context-aware Git commit messages.
"""
license-file = ["LICENSE", "4"]
maintainer = "Stefanie Jane <stef@hyperbliss.tech>"
priority = "optional"
section = "utility"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[package.metadata.generate-rpm.assets]]
dest = "/usr/bin/git-iris"
mode = "755"
source = "target/release/git-iris"
[[package.metadata.generate-rpm.assets]]
dest = "/usr/share/doc/git-iris/README"
mode = "644"
source = "README.md"
[[package.metadata.generate-rpm.assets]]
dest = "/usr/share/man/man1/git-iris.1"
mode = "644"
source = "git-iris.1"
[[test]]
name = "agent_tests"
path = "tests/agent_tests.rs"
[[test]]
name = "basic_git_operations_tests"
path = "tests/basic_git_operations_tests.rs"
[[test]]
name = "branch_comparisons_tests"
path = "tests/branch_comparisons_tests.rs"
[[test]]
name = "changelog_tests"
path = "tests/changelog_tests.rs"
[[test]]
name = "config_tests"
path = "tests/config_tests.rs"
[[test]]
name = "file_exclusions_tests"
path = "tests/file_exclusions_tests.rs"
[[test]]
name = "git_hooks_tests"
path = "tests/git_hooks_tests.rs"
[[test]]
name = "gitmoji_tests"
path = "tests/gitmoji_tests.rs"
[[test]]
name = "lib"
path = "tests/lib.rs"
[[test]]
name = "pr_tests"
path = "tests/pr_tests.rs"
[[test]]
name = "remote_git_repositories_tests"
path = "tests/remote_git_repositories_tests.rs"
[[test]]
name = "remote_repository_integration_tests"
path = "tests/remote_repository_integration_tests.rs"
[[test]]
name = "review_tests"
path = "tests/review_tests.rs"
[[test]]
name = "service_tests"
path = "tests/service_tests.rs"
[[test]]
name = "test_utils"
path = "tests/test_utils.rs"