-
Notifications
You must be signed in to change notification settings - Fork 8
SOLAPI Python SDK 5.0.3 #17
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
Conversation
Add project documentation files to guide Claude Code when working with this codebase. Includes project overview, architecture details, conventions, and anti-patterns specific to this SDK. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Python 파일 수정 시 자동으로 실행되는 Hook 설정: - ruff check --fix: 린트 오류 자동 수정 - ruff format: 코드 포매팅 - ty check: 타입 체크 (오류 시 Claude에게 수정 요청) PostToolUse 이벤트에서 Edit/Write/NotebookEdit 도구 사용 후 실행됩니다. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Kent Beck's "Tidy First?" guidelines to enforce separation of structural (refactoring) and behavioral (feature) changes in commits. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Incremented version in pyproject.toml from 5.0.2 to 5.0.3. - Introduced new BMS message types in message_type.py. - Added BMS-related models including Bms, BmsButton, BmsCarousel, BmsCommerce, BmsCoupon, BmsVideo, and BmsOption. - Implemented validation logic for BMS models to ensure required fields are present. - Added tests for BMS functionality to ensure proper behavior and validation. This update enhances the SDK's capabilities for handling brand messaging services.
Summary of ChangesHello @Palbahngmiyine, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a major enhancement to the SOLAPI Python SDK by adding full support for Kakao Brand Message Service (BMS) Free messages. It includes a comprehensive set of new Pydantic models for various rich message components, ensuring robust data validation and correct API interactions. Alongside this feature, the PR integrates automated code quality checks using Claude Code hooks for linting, formatting, and type checking, and updates the SDK version. Extensive documentation has also been added to guide both human developers and AI agents in understanding and contributing to the project. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
안녕하세요. SOLAPI Python SDK 5.0.3 업데이트를 위한 PR을 리뷰했습니다. 이번 변경은 주로 카카오 브랜드 메시지(BMS) 기능 추가에 중점을 두고 있으며, 이를 위해 다수의 Pydantic 모델과 관련 로직, 그리고 테스트 코드가 추가되었습니다. 또한 ruff와 ty를 사용한 코드 자동 린팅 및 타입 체크를 위한 개발 환경 개선도 포함되어 있습니다. 전반적으로 BMS 기능의 다양한 케이스를 잘 모델링하고 테스트한 점이 인상적입니다. 다만, 몇 가지 개선점을 제안합니다. 가장 중요한 것은 bms_option.py와 request/kakao/bms.py 간의 심각한 코드 중복 문제와 uv.lock 파일이 pyproject.toml과 동기화되지 않은 문제입니다. 또한, E2E 테스트 코드에서 예외 처리가 AssertionError까지 포함하여 테스트 실패를 가릴 수 있는 잠재적인 버그를 발견했습니다. 몇몇 문서 파일의 버전 번호 업데이트가 누락된 부분도 수정이 필요합니다. 자세한 내용은 각 파일에 남긴 코멘트를 참고해주세요.
- Added support for development requirements in `uv.lock`. - Introduced new images: `example_square.jpg` and `example_wide.jpg`. - Refactored BMS models to use `list` instead of `List` for type hints. - Improved validation logic in `BmsCommerce` for discount handling. - Updated tests to ensure proper assertions and added image checks for BMS wide item list.
|
/gemini review |
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.
Code Review
이 풀 리퀘스트는 카카오 브랜드 메시지 서비스(BMS) 자유형 메시지를 위한 새로운 기능을 도입합니다. 여기에는 다양한 BMS 구성 요소(버튼, 캐러셀, 커머스, 쿠폰, 비디오, 와이드 아이템)를 위한 새로운 Pydantic 모델과 관련 유효성 검사 로직이 포함됩니다. 또한 프로젝트 버전이 업데이트되었고, 필요한 개발 종속성이 추가되었으며, 새로운 BMS 기능에 대한 포괄적인 단위 및 E2E 테스트가 포함되었습니다. 문서 파일(AGENTS.md, CLAUDE.md, solapi/model/AGENTS.md)도 이러한 변경 사항을 반영하고 지침을 제공하도록 업데이트되었습니다. 하지만 solapi/model/request/kakao/bms.py와 solapi/model/kakao/bms/bms_option.py 사이에 유효성 검사 로직이 중복되어 향후 유지보수 문제가 발생할 수 있습니다.
- Removed unused development requirements from `uv.lock`. - Introduced new example scripts for various BMS message types, including carousel commerce, carousel feed, and commerce messages. - Added validation for required fields in BMS models to enhance error handling. - Updated imports in BMS module to include new validation functions. - Improved documentation in example scripts for better clarity on usage.
|
/gemini review |
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.
Code Review
This pull request introduces significant new functionality by adding support for Kakao Brand Message Service (BMS) Free type messages, including various chat bubble types like TEXT, IMAGE, WIDE, WIDE_ITEM_LIST, COMMERCE, CAROUSEL_FEED, CAROUSEL_COMMERCE, and PREMIUM_VIDEO. It also includes a new Claude Code hook for Python linting and formatting, along with updated documentation. The version has been correctly incremented in pyproject.toml and solapi/model/request/__init__.py.
However, there are several areas that require attention, primarily related to error handling in the new linting hook, potential data validation inconsistencies in the BMS models, and the use of hardcoded credentials in example scripts. Additionally, some documentation duplication was noted.
- Introduced a new field validator for the "description" field in the BmsCoupon class. - Ensures that the description is limited to a maximum of 12 characters, enhancing input validation and error handling.
…mples - Replaced `os.path.abspath` with `pathlib.Path` for improved file path handling in multiple example scripts. - Shortened coupon descriptions in various BMS examples for better clarity and consistency.
- Added .omc/ to the .gitignore file to prevent tracking of omc-related files in the repository.
기능 변경사항
문서 및 예제
프로젝트 내부 변경사항