docs: group-sync mapping filter, patch-by-project-key, empty-body 400 - #307
docs: group-sync mapping filter, patch-by-project-key, empty-body 400#307pablohashescobar wants to merge 1 commit into
Conversation
Document the group-sync external API changes from makeplane/plane-ee#8476: - Add project_identifier query param to the list project mappings page (case-insensitive filter, empty list on unknown identifier) - Add new page for PATCH by project key + IdP group name, including 404 conditions and the all_projects exclusion - Document 400 on empty PATCH bodies for project and workspace mapping update endpoints - Add the new page to the IDP Group Sync sidebar Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@pablohashescobar is attempting to deploy a commit to the Marketing at Plane Team on Vercel. A member of the Team first needs to authorize it. |
📝 WalkthroughWalkthroughThe documentation adds project filtering to the listing endpoint, documents updates by project key, clarifies empty-body validation, and adds the new endpoint to the API sidebar. ChangesIDP Group Sync documentation
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@docs/api-reference/idp-group-sync/update-project-mapping-by-key.md`:
- Around line 99-103: Move the alternate OAuth authentication comment out of the
continued curl command in the documentation example, placing it before the curl
invocation or presenting it as a separate complete command. Ensure every line in
the primary command remains part of the same shell command without an
intervening comment.
🪄 Autofix
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: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: c0212ef3-8285-4006-97cd-385dd6760d41
📒 Files selected for processing (5)
docs/.vitepress/config.mtsdocs/api-reference/idp-group-sync/list-project-mappings.mddocs/api-reference/idp-group-sync/update-project-mapping-by-key.mddocs/api-reference/idp-group-sync/update-project-mapping.mddocs/api-reference/idp-group-sync/update-workspace-mapping.md
| curl -X PATCH \ | ||
| "https://api.plane.so/api/v1/workspaces/my-workspace/group-sync/project-mappings/ENG/engineering/" \ | ||
| -H "X-API-Key: $PLANE_API_KEY" \ | ||
| # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \ | ||
| -H "Content-Type: application/json" \ |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Move the alternate authentication comment outside the continued command.
The API-key header line ends with \, so the shell continues into the next line. The # Or use ... comment then interrupts the command. A copied request can execute -H "Content-Type: application/json" as a separate command.
Move the comment above curl, or show the alternate authentication header in a separate complete command.
Suggested layout
+# Use one authentication header:
+# -H "X-API-Key: $PLANE_API_KEY"
+# -H "Authorization: Bearer $PLANE_OAUTH_TOKEN"
curl -X PATCH \
"https://api.plane.so/api/v1/workspaces/my-workspace/group-sync/project-mappings/ENG/engineering/" \
-H "X-API-Key: $PLANE_API_KEY" \
- # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| curl -X PATCH \ | |
| "https://api.plane.so/api/v1/workspaces/my-workspace/group-sync/project-mappings/ENG/engineering/" \ | |
| -H "X-API-Key: $PLANE_API_KEY" \ | |
| # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \ | |
| -H "Content-Type: application/json" \ | |
| # Use one authentication header: | |
| # -H "X-API-Key: $PLANE_API_KEY" | |
| # -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" | |
| curl -X PATCH \ | |
| "https://api.plane.so/api/v1/workspaces/my-workspace/group-sync/project-mappings/ENG/engineering/" \ | |
| -H "X-API-Key: $PLANE_API_KEY" \ | |
| -H "Content-Type: application/json" \ |
🤖 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 `@docs/api-reference/idp-group-sync/update-project-mapping-by-key.md` around
lines 99 - 103, Move the alternate OAuth authentication comment out of the
continued curl command in the documentation example, placing it before the curl
invocation or presenting it as a separate complete command. Ensure every line in
the primary command remains part of the same shell command without an
intervening comment.
Description
Documents the group-sync external API changes shipped in makeplane/plane-ee#8476:
project_identifierquery parameter (case-insensitive filter on the project identifier; unknown identifiers return an empty list).PATCH /workspaces/{workspace_slug}/group-sync/project-mappings/{project_key}/{idp_group_name}/, including path/body parameters, scopes, 404 conditions, and the fact thatall_projects: truemappings cannot be addressed by project key.400 {"error": "Request body cannot be empty."}response on the project-mapping and workspace-mapping update endpoints.config.mts.Behavior verified against the merged implementation on
plane-ee@preview(URL patterns, query param normalization, serializer fields, scopes, and error responses).Checks
pnpm check:formatpassespnpm buildpasses🤖 Generated with Claude Code
Summary by CodeRabbit