git_checks/
lib.rs

1// Copyright Kitware, Inc.
2//
3// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
5// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6// option. This file may not be copied, modified, or distributed
7// except according to those terms.
8
9#![warn(missing_docs)]
10// XXX(rust-1.66)
11#![allow(clippy::uninlined_format_args)]
12
13//! Basic Checks
14//!
15//! Simple checks useful in a wide variety of projects.
16
17mod binary_format;
18
19mod allow_robot;
20pub use self::allow_robot::AllowRobot;
21
22mod bad_commit;
23pub use self::bad_commit::BadCommit;
24
25mod bad_commits;
26pub use self::bad_commits::BadCommits;
27
28mod changelog;
29pub use self::changelog::Changelog;
30pub use self::changelog::ChangelogStyle;
31
32mod check_end_of_line;
33pub use self::check_end_of_line::CheckEndOfLine;
34
35mod check_executable_permissions;
36pub use self::check_executable_permissions::CheckExecutablePermissions;
37
38mod check_size;
39pub use self::check_size::CheckSize;
40
41mod check_whitespace;
42pub use self::check_whitespace::CheckWhitespace;
43
44mod commit_subject;
45pub use self::commit_subject::CommitSubject;
46
47mod fast_forward;
48pub use self::fast_forward::FastForward;
49
50mod formatting;
51pub use self::formatting::Formatting;
52
53mod invalid_paths;
54pub use self::invalid_paths::InvalidPaths;
55
56mod invalid_utf8;
57pub use self::invalid_utf8::InvalidUtf8;
58
59mod lfs_pointer;
60pub use self::lfs_pointer::LfsPointer;
61
62mod reject_bidi;
63pub use self::reject_bidi::RejectBiDi;
64
65mod reject_binaries;
66pub use self::reject_binaries::RejectBinaries;
67
68mod reject_conflict_paths;
69pub use self::reject_conflict_paths::RejectConflictPaths;
70
71mod reject_merges;
72pub use self::reject_merges::RejectMerges;
73
74mod reject_separate_root;
75pub use self::reject_separate_root::RejectSeparateRoot;
76
77mod reject_symlinks;
78pub use self::reject_symlinks::RejectSymlinks;
79
80mod release_branch;
81pub use self::release_branch::ReleaseBranch;
82
83mod restricted_path;
84pub use self::restricted_path::RestrictedPath;
85
86mod submodule_available;
87pub use self::submodule_available::SubmoduleAvailable;
88
89mod submodule_rewind;
90pub use self::submodule_rewind::SubmoduleRewind;
91
92mod submodule_watch;
93pub use self::submodule_watch::SubmoduleWatch;
94
95mod third_party;
96pub use self::third_party::ThirdParty;
97
98mod valid_name;
99pub use self::valid_name::ValidName;
100pub use self::valid_name::ValidNameFullNamePolicy;
101
102/// Module for all builders for checks.
103///
104/// This module is here for documentation purposes. Each check's `builder()` method should be
105/// used instead.
106pub mod builders {
107    pub use crate::allow_robot::AllowRobotBuilder;
108    pub use crate::bad_commit::BadCommitBuilder;
109    pub use crate::bad_commits::BadCommitsBuilder;
110    pub use crate::changelog::ChangelogBuilder;
111    pub use crate::check_end_of_line::CheckEndOfLineBuilder;
112    pub use crate::check_executable_permissions::CheckExecutablePermissionsBuilder;
113    pub use crate::check_size::CheckSizeBuilder;
114    pub use crate::check_whitespace::CheckWhitespaceBuilder;
115    pub use crate::commit_subject::CommitSubjectBuilder;
116    pub use crate::fast_forward::FastForwardBuilder;
117    pub use crate::formatting::FormattingBuilder;
118    pub use crate::invalid_paths::InvalidPathsBuilder;
119    pub use crate::invalid_utf8::InvalidUtf8Builder;
120    pub use crate::lfs_pointer::LfsPointerBuilder;
121    pub use crate::reject_bidi::RejectBiDiBuilder;
122    pub use crate::reject_binaries::RejectBinariesBuilder;
123    pub use crate::reject_conflict_paths::RejectConflictPathsBuilder;
124    pub use crate::reject_merges::RejectMergesBuilder;
125    pub use crate::reject_separate_root::RejectSeparateRootBuilder;
126    pub use crate::reject_symlinks::RejectSymlinksBuilder;
127    pub use crate::release_branch::ReleaseBranchBuilder;
128    pub use crate::restricted_path::RestrictedPathBuilder;
129    pub use crate::submodule_available::SubmoduleAvailableBuilder;
130    pub use crate::submodule_rewind::SubmoduleRewindBuilder;
131    pub use crate::submodule_watch::SubmoduleWatchBuilder;
132    pub use crate::third_party::ThirdPartyBuilder;
133    pub use crate::valid_name::ValidNameBuilder;
134}
135
136/// Configuration structures for checks.
137///
138/// These structures are registered using `inventory` using the `git-checks-config` crate. They
139/// are offered here for documentation purposes mainly, but also in case their specific
140/// implementations are useful.
141#[cfg(feature = "config")]
142pub mod config {
143    pub use crate::allow_robot::config::AllowRobotConfig;
144    pub use crate::bad_commit::config::BadCommitConfig;
145    pub use crate::bad_commits::config::BadCommitsConfig;
146    pub use crate::changelog::config::ChangelogConfig;
147    pub use crate::check_end_of_line::config::CheckEndOfLineConfig;
148    pub use crate::check_executable_permissions::config::CheckExecutablePermissionsConfig;
149    pub use crate::check_size::config::CheckSizeConfig;
150    pub use crate::check_whitespace::config::CheckWhitespaceConfig;
151    pub use crate::commit_subject::config::CommitSubjectConfig;
152    pub use crate::formatting::config::FormattingConfig;
153    pub use crate::invalid_paths::config::InvalidPathsConfig;
154    pub use crate::invalid_utf8::config::InvalidUtf8Config;
155    pub use crate::lfs_pointer::config::LfsPointerConfig;
156    pub use crate::reject_bidi::config::RejectBiDiConfig;
157    pub use crate::reject_binaries::config::RejectBinariesConfig;
158    pub use crate::reject_conflict_paths::config::RejectConflictPathsConfig;
159    pub use crate::reject_merges::config::RejectMergesConfig;
160    pub use crate::reject_separate_root::config::RejectSeparateRootConfig;
161    pub use crate::reject_symlinks::config::RejectSymlinksConfig;
162    pub use crate::release_branch::config::ReleaseBranchConfig;
163    pub use crate::restricted_path::config::RestrictedPathConfig;
164    pub use crate::submodule_available::config::SubmoduleAvailableConfig;
165    pub use crate::submodule_rewind::config::SubmoduleRewindConfig;
166    pub use crate::submodule_watch::config::SubmoduleWatchConfig;
167    pub use crate::third_party::config::ThirdPartyConfig;
168    pub use crate::valid_name::config::ValidNameConfig;
169}
170
171#[cfg(test)]
172pub mod test;