Skip to content

Add new Find and Search commit actions, revisit docs#14

Merged
terales merged 6 commits into
mainfrom
develop
Jun 30, 2026
Merged

Add new Find and Search commit actions, revisit docs#14
terales merged 6 commits into
mainfrom
develop

Conversation

@terales

@terales terales commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Add new Find and Search commit actions, revisit docs

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@terales, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 30 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a5dca4eb-a9a0-4b6f-9ff4-48dbf94eb630

📥 Commits

Reviewing files that changed from the base of the PR and between c674757 and 0e656fc.

📒 Files selected for processing (7)
  • Apps.GitLab/Actions/BranchActions.cs
  • Apps.GitLab/Actions/CommitActions.cs
  • Apps.GitLab/Actions/PullRequestActions.cs
  • Apps.GitLab/Actions/RepositoryActions.cs
  • Apps.GitLab/Models/Commit/Requests/ListCommitsRequest.cs
  • README.md
  • Tests.GitLab/CommitActionTests.cs

Walkthrough

Adds SearchCommitsRequest DTO with author/date/message/path filters, CommitResponse/CommitStatsResponse DTOs, updates ListRepositoryCommits to accept search filters, adds a new FindCommit action, and introduces integration tests. Also refreshes display metadata strings, acronym casing, project version (1.0.13→1.0.14), and README structure across the codebase.

Changes

Commit Search Feature

Layer / File(s) Summary
Commit request/response DTOs
Apps.GitLab/Models/Commit/Requests/SearchCommitsRequest.cs, Apps.GitLab/Models/Commit/Responses/CommitResponse.cs, Apps.GitLab/Models/Commit/Responses/ListRepositoryCommitsResponse.cs, Apps.GitLab/Models/Commit/Requests/GetCommitRequest.cs, Apps.GitLab/Models/Commit/Requests/AddedOrModifiedHoursRequest.cs
Adds SearchCommitsRequest with author/date/message/path filter fields; adds CommitResponse and CommitStatsResponse mapping from GitLab API models; updates ListRepositoryCommitsResponse to use CommitResponse and add a Count property.
ListRepositoryCommits, FindCommit, GetCommit actions
Apps.GitLab/Actions/CommitActions.cs
ListRepositoryCommits now accepts SearchCommitsRequest and delegates to internal search/filter logic returning a count+commits response. New FindCommit action returns first filtered match or throws. GetCommit wraps result in CommitResponse. Filtering helpers (FilterCommits, NormalizeFilterValues, FormatGitLabDate, ContainsIgnoreCase) added.
Integration tests
Tests.GitLab/CommitActionTests.cs
Adds MSTest tests covering ListRepositoryCommits and FindCommit for author include/exclude, date range, message substring, file path, consistency, and exact boundary conditions.

Display Metadata & Documentation Refresh

Layer / File(s) Summary
Action and webhook description string updates
Apps.GitLab/Actions/BranchActions.cs, Apps.GitLab/Actions/PullRequestActions.cs, Apps.GitLab/Actions/RepositoryActions.cs, Apps.GitLab/Actions/CommitActions.cs, Apps.GitLab/Webhooks/PushWebhooks.cs
Updates Description strings in [Action] and [Webhook] attributes across branch, merge request, repository, commit, and push webhook handlers for clarity.
Display attribute acronym casing fixes
Apps.GitLab/Webhooks/Payloads/PushPayload.cs, Apps.GitLab/Models/Respository/Requests/CreateRepositoryInput.cs, Apps.GitLab/Models/User/Responses/UserDataResponse.cs
Standardizes Display attribute strings to uppercase acronyms (URL, SHA, SSH, HTTP, LFS, CI).
Project version and README
Apps.GitLab/Apps.GitLab.csproj, README.md
Bumps version to 1.0.14, updates project description, embeds README as resource, and restructures README actions/events documentation into Repository/Commit/Merge request/Branch sections.

Sequence Diagram

sequenceDiagram
  participant Caller
  participant CommitActions
  participant GitLabAPI

  Caller->>CommitActions: ListRepositoryCommits(repo, branch, SearchCommitsRequest)
  CommitActions->>GitLabAPI: GetCommitsAsync(ref, since, until, path, author)
  GitLabAPI-->>CommitActions: IEnumerable<Commit>
  CommitActions->>CommitActions: FilterCommits(author, date, message)
  CommitActions-->>Caller: ListRepositoryCommitsResponse(Count, CommitResponse[])

  Caller->>CommitActions: FindCommit(repo, branch, SearchCommitsRequest)
  CommitActions->>GitLabAPI: GetCommitsAsync(...)
  GitLabAPI-->>CommitActions: IEnumerable<Commit>
  CommitActions->>CommitActions: FilterCommits → First() or throw
  CommitActions-->>Caller: CommitResponse
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: new commit find/search actions and documentation updates.
Description check ✅ Passed The description is directly related to the changeset and matches the added commit actions and doc revisions.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

🧹 Nitpick comments (3)
README.md (2)

153-153: 🧹 Nitpick | 🔵 Trivial

Optional: fix hyphenation and reword for concision.

"For the file specific events" should be hyphenated as "file-specific". Also consider "To narrow down the event" instead of "in order to narrow down the event".

As per static analysis hints: [style] Use a hyphen to join words; [style] Consider a more concise word here.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 153, Update the README text in the file-specific events
section to use “file-specific” with a hyphen and make the sentence more concise,
e.g. replace “in order to narrow down the event” with a shorter phrasing such as
“to narrow down the event.” Keep the guidance about path parameters, separators,
and wildcards intact while rewording for readability.

Source: Linters/SAST tools


74-80: 🧹 Nitpick | 🔵 Trivial

Optional: reduce repetitive "Enable" sentence starts.

The advanced settings list for "Create new repository" has six successive bullet points beginning with "Enable". Consider varying the wording, e.g., "Turn on shared runners" or "Activate the container registry", to improve readability.

As per static analysis hints: [style] Three successive sentences begin with the same word.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 74 - 80, The advanced settings bullets in README.md
are too repetitive because several consecutive items in the Create new
repository list start with “Enable”. Update the wording of the affected bullet
items in the repository settings list to vary the sentence starts, using
alternatives like “Turn on” or “Activate” while keeping the meaning the same.
Locate the list near the “Create new repository” section and adjust the bullet
text consistently so no long run of entries begins with the same word.

Source: Linters/SAST tools

Apps.GitLab/Actions/CommitActions.cs (1)

102-102: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Action name should use the Search verb prefix.

This action returns a collection, so per naming conventions the user-facing name should start with Search rather than List (e.g. "Search added or modified files in last X hours"). Renaming is a breaking change for existing blueprints, so treat this as a non-blocking suggestion. As per path instructions: "Search ... — returns a list/collection of items. ❌ 'List entries' ... → ✅ 'Search entries'".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Apps.GitLab/Actions/CommitActions.cs` at line 102, The user-facing action
name on the Action attribute in CommitActions should use the Search verb prefix
instead of List because this method returns a collection. Update the Action
display name for the symbol in CommitActions to something like “Search added or
modified files in last X hours”, while keeping the change non-breaking awareness
in mind since existing blueprints may depend on the old name.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Apps.GitLab/Actions/BranchActions.cs`:
- Line 20: The action display name still uses the nonconforming “List branches”
verb, while collection-returning actions must use “Search”. Update the Action
attribute on the branch action in BranchActions so its name becomes “Search
branches”, keeping the existing description aligned with the search behavior.

In `@Apps.GitLab/Actions/CommitActions.cs`:
- Around line 60-87: `SearchRepositoryCommits` only fetches the first 100
commits, so `Search commits` and `Find commit` can miss matches past page one.
Update `SearchRepositoryCommits` to paginate through all commit pages from the
GitLab API (using `page`/`per_page` or next-page headers) and collect the full
result set before calling `FilterCommits`, so the returned list and count
reflect all matching commits.

In `@Apps.GitLab/Actions/PullRequestActions.cs`:
- Line 19: The action display name on PullRequestActions should use the required
Search verb for collection-returning actions. Update the Action attribute on the
merge request action from "List merge requests" to "Search merge requests",
keeping the existing description intact and ensuring the naming matches the
conventions used by this class.

In `@Apps.GitLab/Actions/RepositoryActions.cs`:
- Line 166: The action name on RepositoryActions should use the Search verb
because it returns a collection of merge requests rather than a single item.
Update the [Action] attribute on the merge request listing method to use a name
like Search repository merge requests (or another Search-prefixed equivalent) so
it matches the naming convention for list-returning actions.
- Line 203: The action display name on RepositoryActions should use the required
Search verb instead of List. Update the [Action] attribute on the repository
collection action so its name matches “Search repositories”, keeping the
existing description, and ensure the unique identifier remains the action
declaration in RepositoryActions.
- Line 90: Rename the action on RepositoryActions to use the Search verb instead
of Get, since this method returns a collection rather than a single item. Update
the Action attribute name from “Get all files in folder” to a compliant label
like “Search files in folder” (or similar Search-prefixed wording) so it matches
the naming convention used for list-returning actions.
- Line 153: Rename the RepositoryActions action metadata from “Get repository
issues” to a Search-prefixed name such as “Search repository issues” (or “Search
issues”) so it matches the naming convention for collection-returning actions.
Update the [Action] attribute on the repository issues action in
RepositoryActions to use the Search verb while keeping the description aligned
with the list/search behavior.
- Line 213: The action name on RepositoryActions should use the Search verb
because it returns a collection of files, not a single item. Update the Action
attribute currently labeled "Get files by filepaths" to a Search-based name such
as "Search files by file paths" (or similar) so it matches the naming convention
used for collection-returning actions.
- Line 179: The action display name on the RepositoryActions attribute is using
the wrong verb for a collection-returning action. Update the Action name for the
folder-content action in RepositoryActions so it starts with “Search” instead of
“List”, keeping the existing description aligned; use the existing attribute on
the repository folder content action to rename it to “Search repository folder
content” (or the shorter approved “Search folder content”).

In `@Tests.GitLab/CommitActionTests.cs`:
- Around line 52-65: The CommitActionTests.ListRepositoryCommits date-range test
is brittle because it hardcodes a fixed UTC day that may have no commits,
causing unrelated failures. Update the test to use a stable historical date
window that is known to contain commits, similar to the boundary-style setup
used elsewhere in CommitActionTests, or remove the Any() assertion and keep only
the CreatedAt range validation against CommitActions.ListRepositoryCommits.

---

Nitpick comments:
In `@Apps.GitLab/Actions/CommitActions.cs`:
- Line 102: The user-facing action name on the Action attribute in CommitActions
should use the Search verb prefix instead of List because this method returns a
collection. Update the Action display name for the symbol in CommitActions to
something like “Search added or modified files in last X hours”, while keeping
the change non-breaking awareness in mind since existing blueprints may depend
on the old name.

In `@README.md`:
- Line 153: Update the README text in the file-specific events section to use
“file-specific” with a hyphen and make the sentence more concise, e.g. replace
“in order to narrow down the event” with a shorter phrasing such as “to narrow
down the event.” Keep the guidance about path parameters, separators, and
wildcards intact while rewording for readability.
- Around line 74-80: The advanced settings bullets in README.md are too
repetitive because several consecutive items in the Create new repository list
start with “Enable”. Update the wording of the affected bullet items in the
repository settings list to vary the sentence starts, using alternatives like
“Turn on” or “Activate” while keeping the meaning the same. Locate the list near
the “Create new repository” section and adjust the bullet text consistently so
no long run of entries begins with the same word.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9c73c201-3e92-4e0e-b3f8-215b23689cc7

📥 Commits

Reviewing files that changed from the base of the PR and between e997ea2 and c674757.

📒 Files selected for processing (16)
  • Apps.GitLab/Actions/BranchActions.cs
  • Apps.GitLab/Actions/CommitActions.cs
  • Apps.GitLab/Actions/PullRequestActions.cs
  • Apps.GitLab/Actions/RepositoryActions.cs
  • Apps.GitLab/Apps.GitLab.csproj
  • Apps.GitLab/Models/Commit/Requests/AddedOrModifiedHoursRequest.cs
  • Apps.GitLab/Models/Commit/Requests/GetCommitRequest.cs
  • Apps.GitLab/Models/Commit/Requests/SearchCommitsRequest.cs
  • Apps.GitLab/Models/Commit/Responses/CommitResponse.cs
  • Apps.GitLab/Models/Commit/Responses/ListRepositoryCommitsResponse.cs
  • Apps.GitLab/Models/Respository/Requests/CreateRepositoryInput.cs
  • Apps.GitLab/Models/User/Responses/UserDataResponse.cs
  • Apps.GitLab/Webhooks/Payloads/PushPayload.cs
  • Apps.GitLab/Webhooks/PushWebhooks.cs
  • README.md
  • Tests.GitLab/CommitActionTests.cs

Comment thread Apps.GitLab/Actions/BranchActions.cs Outdated
Comment thread Apps.GitLab/Actions/CommitActions.cs
Comment thread Apps.GitLab/Actions/PullRequestActions.cs Outdated
Comment thread Apps.GitLab/Actions/RepositoryActions.cs
Comment thread Apps.GitLab/Actions/RepositoryActions.cs Outdated
Comment thread Apps.GitLab/Actions/RepositoryActions.cs Outdated
Comment thread Apps.GitLab/Actions/RepositoryActions.cs Outdated
Comment thread Apps.GitLab/Actions/RepositoryActions.cs Outdated
Comment thread Apps.GitLab/Actions/RepositoryActions.cs Outdated
Comment thread Tests.GitLab/CommitActionTests.cs
@terales terales merged commit 741b970 into main Jun 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant