Conversation
Collaborator
mesilov
commented
Mar 18, 2026
| Q | A |
|---|---|
| Bug fix? | yes |
| New feature? | yes |
| Deprecations? | yes |
| Issues | Fix #389 |
| License | MIT |
- Updated method signature and associated tests to return `int` instead of `?int`. - Modified data providers and test cases to align with the new non-nullable contract. - Updated documentation and changelog to reflect the change. - Ensured compatibility with existing implementations. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Make `ContactPersonInterface::getBitrix24UserId()` non-nullable
…erministic master account selection - Resolved issue #387 by updating behavior to prioritize master accounts using explicit status order (`active > new > blocked`) and exclude deleted installations. - Added regression tests to cover edge cases and verify non-deleted master account lifecycle scenarios. - Updated `CHANGELOG.md` to reflect the repository behavior fix. - Introduced `AGENTS.md` to document repository-level working rules and guidelines. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…counts in pending install flows - Updated in-memory repository logic to prioritize accounts by explicit status order (`active > new > blocked`) and exclude deleted installations. - Added extensive test coverage for master account lifecycle scenarios, ensuring fallback behavior in edge cases. - Updated `.gitignore` to include `.DS_Store` and updated `CHANGELOG.md` to document the fix. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Bugfix/387 fix in memory repo
- Introduced `openapi.json` to document the Bitrix24 REST V3 API. - Removed `openapi.json` from `.gitignore` to include it in version control. - Defined API methods, request bodies, responses, and schema components for `main`, `rest`, and `tasks` modules. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…line and usage requirements Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…n generation - Introduced `show-sdk-coverage-statistics` to display SDK API coverage in the console. - Added `build-documentation` to generate Markdown documentation for SDK API coverage. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…SDK metadata extraction - Resolved crashes caused by `AttributesParser` when handling union return types like `int|string`. - Introduced a helper to normalize `ReflectionType` into metadata, supporting `ReflectionNamedType`, `ReflectionUnionType`, and `ReflectionIntersectionType`. - Extended API-method metadata to include `sdk_return_type_declaration` for accurate representation of compound types. - Added regression tests for union return types and expanded test coverage for various reflection shapes. - Verified compatibility of coverage statistics and documentation generation tools. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…od metadata - Replaced associative array-based metadata structure with strongly typed readonly VO (`SupportedInSdkApiMethod`) featuring public fields. - Updated consumers to handle the VO contract, ensuring consistent field access and camelCase naming convention. - Extended type reflection logic to preserve compound return types via `sdkReturnTypeDeclaration` while maintaining compatibility for single-class return types. - Revised `getSupportedInSdkApiMethods()` to return `list<SupportedInSdkApiMethod>` with explicit collection behavior. - Updated and Signed-off-by: mesilov <mesilov.maxim@gmail.com>
… with compound return types. - Migrated metadata to strongly typed readonly VO (`SupportedInSdkApiMethod`) to replace associative arrays, improving consistency and type safety. - Extended type reflection to support `ReflectionUnionType`, `ReflectionIntersectionType`, and nullable types, preserving compound return types in metadata. - Updated documentation and consumers to accommodate the new metadata structure. - Added regression tests for various reflection scenarios. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
- Introduced `b24-dev:show-oa-sdk-coverage` command to compare OpenAPI schema snapshot (`openapi.json`) against SDK v3 methods. - Implemented coverage calculation to classify methods as covered, uncovered, or SDK-only. - Added support for scope compatibility validation and alias handling for OA-to-SDK mismatches. - Included optional flags (`--show-uncovered`, `--show-sdk-only`) for detailed diagnostics. - Updated `Makefile` to add `oa-sdk-coverage` target for the new command. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…esign steps - Added detailed guidance on using OpenAPI Specification Extensions (`x-*`) for vendor-specific metadata, including reserved prefixes and project-local namespace recommendations (`x-b24-*`). - Appended documentation and research notes to task #391. - Outlined the implementation plan for SDK support of `tasks.task.field.get` and `tasks.task.field.list` in task # Signed-off-by: mesilov <mesilov.maxim@gmail.com>
- Implemented support for `tasks.task.field.get` and `tasks.task.field.list` methods. - Introduced `TaskFieldItemResult`, `TaskFieldResult`, and `TaskFieldsResult` to provide strongly typed wrappers for API responses. - Updated `TaskServiceBuilder` to include the new `TaskField` service. - Added integration test coverage for task field metadata methods. - Documented result-item annotation testing and conventions in `AGENTS.md` and `docs/testing.md`. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
- Introduced `b24-dev:show-v3-field-metadata` command to fetch and display field metadata for specific v3 entities. - Implemented `Bitrix24V3FieldMetadataFetcher` for field metadata retrieval via OpenAPI methods. - Added support for JSON and table output formats. - Developed `DevWebhookResolver` to handle webhook resolution logic, prioritizing CLI input followed by environment variables. - Included unit and integration tests for the new CLI command and supporting classes. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…support - Implemented support for Bitrix24 REST API methods `tasks.task.chat.message.field.get` and `tasks.task.chat.message.field.list` in API v3. - Introduced `ChatMessageField` service with `get()` and `list()` methods in `TaskServiceBuilder`. - Added result classes `ChatMessageFieldResult`, `ChatMessageFieldsResult`, and `ChatMessageFieldItemResult` for handling API responses. - Updated `CHANGELOG.md`, Makefile targets, PHPUnit configuration, and added unit and integration tests for the new service. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…te field annotations - Introduced `ChatMessageFieldItemResultTest` to ensure all fields are properly annotated and match raw API response. - Utilized `CustomBitrix24Assertions` for field verification in integration scenarios. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…annotations - Introduced `CustomBitrix24AssertionsTest` to ensure fields of `AbstractItem` match their annotated types. - Implemented `assertBitrix24ResultItemFieldsTypeCastMatchAnnotations()` to enforce type consistency. - Added test cases for matching types, nullable types, and invalid types with detailed assertions. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
… type annotations and magic getter type casting - Extended `phpunit.xml.dist` to include `ChatMessageFieldItemResultTest` in the integration suite. - Updated `CHANGELOG.md` with details about the new test coverage. - Added tests to ensure all fields are properly annotated and magic getters return values with correct type casting. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…hpsdk` repository - Introduced `.claude/skills/b24phpsdk-maintainer/SKILL.md` to guide maintainers on handling GitHub issues. - Updated `CHANGELOG.md` with details of the new skill addition. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Add `ChatMessageField` service for `tasks.task.chat.message.field.*`
- Implemented support for Bitrix24 REST API methods `tasks.task.file.field.get` and `tasks.task.file.field.list` in API v3. - Added `FileField` service with `get()` and `list()` methods in `TaskServiceBuilder`. - Introduced result classes `FileFieldResult`, `FileFieldsResult`, and `FileFieldItemResult` for handling API responses. - Updated `CHANGELOG.md`, Makefile targets, PHPUnit configuration, and added unit and integration tests for the new service. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Add `FileField` service for `tasks.task.file.field.*` support
- Implemented support for Bitrix24 REST API methods `tasks.task.access.field.get` and `tasks.task.access.field.list` in API v3. - Created `AccessField` service with `get()` and `list()` methods in `TaskServiceBuilder`. - Introduced result classes `AccessFieldResult`, `AccessFieldsResult`, and `AccessFieldItemResult` for managing API responses. - Updated `CHANGELOG.md`, Makefile targets, PHPUnit configuration, and added both unit and integration tests for the new service. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…lder` for caching and initialization Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Feature/396 add task access field
- Revised `AGENTS.md` with new naming convention, step organization, and rules for `CHANGELOG.md` updates. - Expanded `b24phpsdk-maintainer` skill tools to include pull request management capabilities. - Updated `.claude/settings.json` structure for plugin and permission settings. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…chMethodCallReturnTypeRector (#394) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…skill (#394) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… PR body (#394) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ach time, not from hardcoded copy (#394) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ssue linking (#394) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e linking (#394) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ield Add EventLogField service for main.eventlog.field.* support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add TaskField service for tasks.task.field.* support (#395)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-local-app-auth Add oauthServerUrl field to LocalAppAuth
…domain (#372) Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…on-in-call Fix infinite recursion in Core::call() on same-domain 302 redirect
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… responses (#343) Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…ll documentation (#NNN) Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…ponse-data Fix Response crash when API response lacks time node
# Conflicts: # .tasks/395/plan.md # AGENTS.md # CHANGELOG.md
Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…and GitHub tracking, enforce OpenAPI schema refresh Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…#408) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add support for rest.scope.list (#408)
…testing class naming for clarity Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Feature/391 improve oa schema - add fields info
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.