-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(codemagic_app_preview): fix posting comment on GitLab #111
Conversation
Warning Rate limit exceeded@nilsreichardt has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 12 minutes and 24 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
WalkthroughThe pull request modifies the Changes
Sequence DiagramsequenceDiagram
participant Client
participant GitLabApiRepository
participant GitLab API
Client->>GitLabApiRepository: postComment(comment)
GitLabApiRepository->>GitLabApiRepository: Encode comment
GitLabApiRepository->>GitLab API: POST request with encoded comment
GitLab API-->>GitLabApiRepository: Response
GitLabApiRepository-->>Client: Comment posting result
Client->>GitLabApiRepository: editComment(comment)
GitLabApiRepository->>GitLabApiRepository: Encode comment
GitLabApiRepository->>GitLab API: PUT request with encoded comment
GitLab API-->>GitLabApiRepository: Response
GitLabApiRepository-->>Client: Comment editing result
The sequence diagram illustrates the enhanced comment posting and editing processes, highlighting the additional step of URI encoding before sending the requests to the GitLab API. Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
packages/codemagic_app_preview/lib/src/git/gitlab_api_repository.dart (1)
Line range hint
60-75
: Apply the same encoding fix to editComment method.The
editComment
method is susceptible to the same truncation issue when comments contain special characters. For consistency and to prevent similar issues, the comment parameter should also be encoded.Apply this fix:
Future<void> editComment(int commentId, String comment) async { + final encodedComment = Uri.encodeComponent(comment); final response = await httpClient.put( Uri.parse( - '$_baseUrl/api/v4/projects/$projectId/merge_requests/$mergeRequestId/notes/$commentId?body=$comment', + '$_baseUrl/api/v4/projects/$projectId/merge_requests/$mergeRequestId/notes/$commentId?body=$encodedComment', ),
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
packages/codemagic_app_preview/lib/src/git/gitlab_api_repository.dart
(1 hunks)
🔇 Additional comments (1)
packages/codemagic_app_preview/lib/src/git/gitlab_api_repository.dart (1)
41-41
: LGTM! Good fix for the comment truncation issue.
The addition of Uri.encodeComponent()
is the correct solution for handling special characters in query parameters. This will properly encode not just &
but all special characters that could cause issues in URLs.
Also applies to: 44-44
⬇️ Builds generated by Codemagic for commit 65c692c ⬇️ This is a custom message.
(expires Sun, 19 Jan 2025 19:53:26 GMT) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! ❤️ LGTM
I added the fix also to the editComment
method and improved the e2e tests to catch this 👍
(CI fails because this PR is created by an external contributor)
@actranito I published a new version ( |
@nilsreichardt thanks, I will try it out. Will come back to you with some feedback |
@nilsreichardt working fine now! Thanks for this awesome package ❤️ |
Great! Thanks for testing 👍 |
The Gitlab comment was getting cut off on the first
&
symbol in the query param of theqrCodeUrl
.This was happening since the Gitlab API takes in the body of the comment as a query param as well, so the api was parsing the
&
as another query param on the endpoint call.The proposed fix encodes the comment body first before calling the API.