git-bot-feedback 0.2.4__tar.gz → 0.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/CHANGELOG.md +4 -3
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/Cargo.lock +2 -2
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/Cargo.toml +1 -1
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/PKG-INFO +1 -1
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/bindings/python/CHANGELOG.md +26 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/bindings/python/Cargo.toml +2 -2
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6/bindings/python}/git_bot_feedback.pyi +2 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/bindings/python/src/wrapper.rs +23 -0
- {git_bot_feedback-0.2.4/bindings/python → git_bot_feedback-0.2.6}/git_bot_feedback.pyi +2 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/file_utils/file_filter.rs +28 -1
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/.gitattributes +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/.gitignore +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/.pre-commit-config.yaml +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/CONTRIBUTING.md +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/LICENSE +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/README.md +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/README.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/bindings/python/README.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/bindings/python/src/lib.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/build.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/codecov.yml +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/cspell.config.yml +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/client.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/file-annotations.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/file-changes.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/index.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/output-variables.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/pr-reviews.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/API/thread-comments.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/_static/favicon.ico +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/_static/logo.png +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/conf.py +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/index.rst +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/docs/logo.xcf +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/nurfile +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/pyproject.toml +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/common.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/gitea/mod.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/gitea/serde_structs.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/gitea/specific_api.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/github/graphql.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/github/mod.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/github/serde_structs.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/github/specific_api.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/local.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/client/mod.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/comments/mod.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/comments/review_comments.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/comments/thread_comments.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/error.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/file_annotations.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/file_utils/mod.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/git_diff.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/lib.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/src/output_variable.rs +0 -0
- {git_bot_feedback-0.2.4 → git_bot_feedback-0.2.6}/uv.lock +0 -0
|
@@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
<!-- markdownlint-disable MD024 -->
|
|
8
8
|
|
|
9
|
-
## [git-bot-feedback/v0.8.
|
|
9
|
+
## [git-bot-feedback/v0.8.5] - 2026-10-04
|
|
10
10
|
|
|
11
11
|
### <!-- 1 --> 🚀 Added
|
|
12
12
|
|
|
@@ -48,6 +48,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
48
48
|
- Move option's value instead of cloning it by @2bndy5 in [#99](https://github.com/2bndy5/git-bot-feedback/pull/99)
|
|
49
49
|
- Output only diff using `git show` by @2bndy5 in [#102](https://github.com/2bndy5/git-bot-feedback/pull/102)
|
|
50
50
|
- Improve Github client's `get_list_of_changed_files()` by @2bndy5 in [#123](https://github.com/2bndy5/git-bot-feedback/pull/123)
|
|
51
|
+
- Match descendants of a given glob pattern by @2bndy5 in [#132](https://github.com/2bndy5/git-bot-feedback/pull/132)
|
|
51
52
|
|
|
52
53
|
### <!-- 8 --> 📝 Documentation
|
|
53
54
|
|
|
@@ -57,9 +58,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
57
58
|
|
|
58
59
|
- Revise `FileAnnotations` impl by @2bndy5 in [#64](https://github.com/2bndy5/git-bot-feedback/pull/64)
|
|
59
60
|
|
|
60
|
-
[git-bot-feedback/v0.8.
|
|
61
|
+
[git-bot-feedback/v0.8.5]: https://github.com/2bndy5/git-bot-feedback/compare/git-bot-feedback/v0.8.4...git-bot-feedback/v0.8.5
|
|
61
62
|
|
|
62
|
-
Full commit diff: [`git-bot-feedback/v0.8.
|
|
63
|
+
Full commit diff: [`git-bot-feedback/v0.8.4...git-bot-feedback/v0.8.5`][git-bot-feedback/v0.8.5]
|
|
63
64
|
|
|
64
65
|
## New Contributors
|
|
65
66
|
|
|
@@ -413,7 +413,7 @@ dependencies = [
|
|
|
413
413
|
|
|
414
414
|
[[package]]
|
|
415
415
|
name = "git-bot-feedback"
|
|
416
|
-
version = "0.8.
|
|
416
|
+
version = "0.8.5"
|
|
417
417
|
dependencies = [
|
|
418
418
|
"async-trait",
|
|
419
419
|
"chrono",
|
|
@@ -433,7 +433,7 @@ dependencies = [
|
|
|
433
433
|
|
|
434
434
|
[[package]]
|
|
435
435
|
name = "git-bot-feedback-py"
|
|
436
|
-
version = "0.2.
|
|
436
|
+
version = "0.2.6"
|
|
437
437
|
dependencies = [
|
|
438
438
|
"git-bot-feedback",
|
|
439
439
|
"pyo3",
|
|
@@ -21,7 +21,7 @@ features = ["http2", "charset", "system-proxy"]
|
|
|
21
21
|
[package]
|
|
22
22
|
name = "git-bot-feedback"
|
|
23
23
|
description = "A library designed for CI tools that posts comments on a Pull Request."
|
|
24
|
-
version = "0.8.
|
|
24
|
+
version = "0.8.5"
|
|
25
25
|
edition.workspace = true
|
|
26
26
|
license.workspace = true
|
|
27
27
|
repository.workspace = true
|
|
@@ -6,11 +6,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
<!-- markdownlint-disable MD024 -->
|
|
8
8
|
|
|
9
|
+
## [git-bot-feedback-py/v0.2.6] - 2026-10-06
|
|
10
|
+
|
|
11
|
+
### <!-- 4 --> 🛠️ Fixed
|
|
12
|
+
|
|
13
|
+
- Add log grouping functions to python wrapper by @2bndy5 in [#133](https://github.com/2bndy5/git-bot-feedback/pull/133)
|
|
14
|
+
|
|
15
|
+
[git-bot-feedback-py/v0.2.6]: https://github.com/2bndy5/git-bot-feedback/compare/git-bot-feedback-py/v0.2.5...git-bot-feedback-py/v0.2.6
|
|
16
|
+
|
|
17
|
+
Full commit diff: [`git-bot-feedback-py/v0.2.5...git-bot-feedback-py/v0.2.6`][git-bot-feedback-py/v0.2.6]
|
|
18
|
+
|
|
19
|
+
## [git-bot-feedback-py/v0.2.5] - 2026-10-04
|
|
20
|
+
|
|
21
|
+
### <!-- 4 --> 🛠️ Fixed
|
|
22
|
+
|
|
23
|
+
- Match descendants of a given glob pattern by @2bndy5 in [#132](https://github.com/2bndy5/git-bot-feedback/pull/132)
|
|
24
|
+
|
|
25
|
+
### <!-- 6 --> 📦 Dependency updates
|
|
26
|
+
|
|
27
|
+
- Bump version to git-bot-feedback/v0.8.5 by @2bndy5 in [`55b72b7`](https://github.com/2bndy5/git-bot-feedback/commit/55b72b7e472fc6e2f33d0d76a20d0d0c2ab3cd9f)
|
|
28
|
+
- Bump version to git-bot-feedback-py/v0.2.5 by @2bndy5 in [`02ed42d`](https://github.com/2bndy5/git-bot-feedback/commit/02ed42d76f20087dbe73b56a6db67aa9041ee23a)
|
|
29
|
+
|
|
30
|
+
[git-bot-feedback-py/v0.2.5]: https://github.com/2bndy5/git-bot-feedback/compare/git-bot-feedback-py/v0.2.4...git-bot-feedback-py/v0.2.5
|
|
31
|
+
|
|
32
|
+
Full commit diff: [`git-bot-feedback-py/v0.2.4...git-bot-feedback-py/v0.2.5`][git-bot-feedback-py/v0.2.5]
|
|
33
|
+
|
|
9
34
|
## [git-bot-feedback-py/v0.2.4] - 2026-10-02
|
|
10
35
|
|
|
11
36
|
### <!-- 6 --> 📦 Dependency updates
|
|
12
37
|
|
|
13
38
|
- Bump version to git-bot-feedback/v0.8.4 by @2bndy5 in [`41a9014`](https://github.com/2bndy5/git-bot-feedback/commit/41a90143260cd11d9597ecb09fc1b6dd41b793cd)
|
|
39
|
+
- Bump version to git-bot-feedback-py/v0.2.4 by @2bndy5 in [`fc345db`](https://github.com/2bndy5/git-bot-feedback/commit/fc345dba18ecb0bc7d587542854115b317db2226)
|
|
14
40
|
|
|
15
41
|
[git-bot-feedback-py/v0.2.4]: https://github.com/2bndy5/git-bot-feedback/compare/git-bot-feedback-py/v0.2.3...git-bot-feedback-py/v0.2.4
|
|
16
42
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "git-bot-feedback-py"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.6"
|
|
4
4
|
edition.workspace = true
|
|
5
5
|
license.workspace = true
|
|
6
6
|
repository.workspace = true
|
|
@@ -14,7 +14,7 @@ crate-type = ["cdylib"] # spell-checker: disable-line
|
|
|
14
14
|
path = "src/lib.rs"
|
|
15
15
|
|
|
16
16
|
[dependencies]
|
|
17
|
-
git-bot-feedback = { path = "../..", version = "0.8.
|
|
17
|
+
git-bot-feedback = { path = "../..", version = "0.8.5", features = ["file-changes", "pyo3"] }
|
|
18
18
|
pyo3 = { workspace = true }
|
|
19
19
|
pyo3-async-runtimes = { version = "0.29.0", features = ["tokio-runtime"] }
|
|
20
20
|
pyo3-log = "0.13.4"
|
|
@@ -6,6 +6,8 @@ class GitClient:
|
|
|
6
6
|
def __init__(self) -> None: ...
|
|
7
7
|
def is_pr_event(self) -> bool: ...
|
|
8
8
|
def is_debug_enabled(self) -> bool: ...
|
|
9
|
+
def start_log_group(self, name: str) -> None: ...
|
|
10
|
+
def end_log_group(self, name: str) -> None: ...
|
|
9
11
|
@property
|
|
10
12
|
def event_name(self) -> str | None: ...
|
|
11
13
|
def set_user_agent(self, user_agent: str) -> None: ...
|
|
@@ -218,6 +218,29 @@ impl GitClient {
|
|
|
218
218
|
Ok(())
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
/// Mark the start of a group of logs statements.
|
|
222
|
+
///
|
|
223
|
+
/// The name given is used as the unique group name.
|
|
224
|
+
#[pyo3(
|
|
225
|
+
signature = (name),
|
|
226
|
+
text_signature = "(name: str) -> None"
|
|
227
|
+
)]
|
|
228
|
+
pub fn start_log_group(&self, name: &str) {
|
|
229
|
+
self.client.blocking_lock().start_log_group(name);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/// Mark the end of a group of logs statements.
|
|
233
|
+
///
|
|
234
|
+
/// Some CI platforms expect the given name to match an already started group of logs.
|
|
235
|
+
/// Other CI platforms do not actually used the given name.
|
|
236
|
+
#[pyo3(
|
|
237
|
+
signature = (name),
|
|
238
|
+
text_signature = "(name: str) -> None"
|
|
239
|
+
)]
|
|
240
|
+
pub fn end_log_group(&self, name: &str) {
|
|
241
|
+
self.client.blocking_lock().end_log_group(name);
|
|
242
|
+
}
|
|
243
|
+
|
|
221
244
|
// /// Construct a HTTP request to be sent.
|
|
222
245
|
// ///
|
|
223
246
|
// /// The idea here is that this method is called before [`Self::send_api_request()`].
|
|
@@ -6,6 +6,8 @@ class GitClient:
|
|
|
6
6
|
def __init__(self) -> None: ...
|
|
7
7
|
def is_pr_event(self) -> bool: ...
|
|
8
8
|
def is_debug_enabled(self) -> bool: ...
|
|
9
|
+
def start_log_group(self, name: str) -> None: ...
|
|
10
|
+
def end_log_group(self, name: str) -> None: ...
|
|
9
11
|
@property
|
|
10
12
|
def event_name(self) -> str | None: ...
|
|
11
13
|
def set_user_agent(self, user_agent: str) -> None: ...
|
|
@@ -176,10 +176,20 @@ impl FileFilter {
|
|
|
176
176
|
};
|
|
177
177
|
for pattern in set {
|
|
178
178
|
let pat = PathBuf::from(&pattern);
|
|
179
|
+
let is_valid_glob = fast_glob::validate(pattern).is_ok();
|
|
180
|
+
let is_glob = is_valid_glob
|
|
181
|
+
&& pattern
|
|
182
|
+
.chars()
|
|
183
|
+
.any(|character| matches!(character, '*' | '?' | '[' | '{'));
|
|
179
184
|
if pattern.is_empty()
|
|
180
|
-
|| glob_match(pattern, file_name.to_string_lossy().as_ref())
|
|
185
|
+
|| (is_valid_glob && glob_match(pattern, file_name.to_string_lossy().as_ref()))
|
|
181
186
|
|| (pat.is_file() && file_name == pat)
|
|
182
187
|
|| (pat.is_dir() && file_name.starts_with(pat))
|
|
188
|
+
|| (is_glob
|
|
189
|
+
&& file_name.ancestors().any(|a| {
|
|
190
|
+
!a.as_os_str().is_empty()
|
|
191
|
+
&& glob_match(pattern, a.to_string_lossy().as_ref())
|
|
192
|
+
}))
|
|
183
193
|
{
|
|
184
194
|
log::debug!(
|
|
185
195
|
"{}file {file_name:?} is {}ignored with domain {pattern:?}.",
|
|
@@ -456,6 +466,23 @@ mod tests {
|
|
|
456
466
|
assert!(file_filter.is_file_not_ignored(&PathBuf::from("./src/file_utils/file_filter.rs")));
|
|
457
467
|
}
|
|
458
468
|
|
|
469
|
+
#[test]
|
|
470
|
+
fn ignore_glob_descendants() {
|
|
471
|
+
// Pattern is a glob that resolves to a directory (examples/<any>/build).
|
|
472
|
+
let file_filter = setup_ignore("examples/*/build", &[]);
|
|
473
|
+
|
|
474
|
+
// The directory itself matches (whole-path glob match).
|
|
475
|
+
assert!(file_filter.is_file_ignored(&PathBuf::from("examples/linux/build")));
|
|
476
|
+
|
|
477
|
+
// Files inside the matched directory should be ignored too,
|
|
478
|
+
// the same way a literal dir pattern like "src" ignores "src/lib.rs".
|
|
479
|
+
assert!(file_filter.is_file_ignored(&PathBuf::from("examples/linux/build/file.c")));
|
|
480
|
+
assert!(file_filter.is_file_ignored(&PathBuf::from("examples/linux/build/some/file.c")));
|
|
481
|
+
|
|
482
|
+
// Siblings outside the glob must not be ignored.
|
|
483
|
+
assert!(!file_filter.is_file_ignored(&PathBuf::from("examples/linux/src/file.c")));
|
|
484
|
+
}
|
|
485
|
+
|
|
459
486
|
#[test]
|
|
460
487
|
fn ignore_submodules() {
|
|
461
488
|
let mut file_filter = setup_ignore("!pybind11", &[]);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|