Skip to content

Remove Workspace Members#242

Merged
srinivaspendem merged 2 commits intomasterfrom
remove-workspace-member
Mar 11, 2026
Merged

Remove Workspace Members#242
srinivaspendem merged 2 commits intomasterfrom
remove-workspace-member

Conversation

@danciaclara
Copy link
Collaborator

@danciaclara danciaclara commented Mar 11, 2026

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Screenshots and Media (if applicable)

Test Scenarios

References

Summary by CodeRabbit

  • Documentation
    • Added a new API reference entry for "Remove Workspace Members" and a dedicated documentation page covering the endpoint, path/body parameters, required authentication scopes, possible responses and validation errors, behavior notes, and runnable example requests in curl, Python, and JavaScript.

@vercel
Copy link

vercel bot commented Mar 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
developer-docs Ready Ready Preview, Comment Mar 11, 2026 10:58am

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Mar 11, 2026

📝 Walkthrough

Walkthrough

Adds a new API Reference navigation item and a new documentation page describing the POST endpoint to remove workspace members, including path and body parameters, required scopes, response codes, validation errors, and example requests/responses.

Changes

Cohort / File(s) Summary
Navigation Configuration
docs/.vitepress/config.mts
Adds a "Remove Workspace Members" entry to the API Reference → Members sidebar.
API Documentation
docs/api-reference/members/remove-workspace-member.md
New reference page documenting POST /api/v1/workspaces/{slug}/members/remove/: path param slug, body params email and remove_seat, required scopes, 204/400/403/404 responses, validation error details, and cURL/Python/JavaScript examples.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A hop to the docs, a tidy new thread,
Remove a member, the path now well read.
Examples lined up — curl, Python, and JS,
I nibble on docs and declare them a success! 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Remove Workspace Members' directly matches the main changes: adding documentation and navigation for a new API endpoint to remove workspace members.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch remove-workspace-member

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 and usage tips.

Copy link

@coderabbitai coderabbitai bot left a 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

🧹 Nitpick comments (2)
docs/api-reference/members/remove-workspace-member.md (2)

87-90: Minor: Inconsistent punctuation in list items.

Line 88 is missing a period at the end, unlike line 89.

Proposed fix
 - Member is deactivated in all projects.
-- Member is removed from all teamspaces and shared pages
+- Member is removed from all teamspaces and shared pages.
 - If `remove_seat` is `true` and unused seats exist, one seat is removed from your plan.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/api-reference/members/remove-workspace-member.md` around lines 87 - 90,
The second bullet "Member is removed from all teamspaces and shared pages" is
missing a trailing period; update that list item to end with a period so it
matches the other bullets ("Member is deactivated in all projects." and "If
`remove_seat` is `true` and unused seats exist, one seat is removed from your
plan.").

151-157: ResponsePanel contains invalid JSON for 204 response.

The ResponsePanel uses a JSON code block but contains plain text No Content. Since 204 responses have no body, consider either removing the code block or using a different format.

Proposed fix
 <ResponsePanel status="204">
 
-```json
-No Content
-```
+*No response body*
 
 </ResponsePanel>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/api-reference/members/remove-workspace-member.md` around lines 151 -
157, The ResponsePanel with status="204" wrongly contains a JSON code block with
plain text "No Content"; update the ResponsePanel (status="204") to remove the
invalid ```json``` code block and replace it with a plain text note such as "*No
response body*" (or remove the content entirely) so the documentation reflects
that a 204 has no response body.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/api-reference/members/remove-workspace-member.md`:
- Around line 19-31: The document skips from h1 to h3 causing an MD001 lint
violation; change the "### Path parameters" heading to an h2 ("## Path
parameters") and similarly promote any sibling sections under the <div
class="params-section"> (e.g., other "###" headings) to h2 so headings increment
by one; ensure the ApiParam block remains unchanged and that the new h2 wraps
the <div class="params-section"> content to restore proper heading hierarchy.

---

Nitpick comments:
In `@docs/api-reference/members/remove-workspace-member.md`:
- Around line 87-90: The second bullet "Member is removed from all teamspaces
and shared pages" is missing a trailing period; update that list item to end
with a period so it matches the other bullets ("Member is deactivated in all
projects." and "If `remove_seat` is `true` and unused seats exist, one seat is
removed from your plan.").
- Around line 151-157: The ResponsePanel with status="204" wrongly contains a
JSON code block with plain text "No Content"; update the ResponsePanel
(status="204") to remove the invalid ```json``` code block and replace it with a
plain text note such as "*No response body*" (or remove the content entirely) so
the documentation reflects that a 204 has no response body.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e5ac344a-f325-4901-9474-7132a9b0dd00

📥 Commits

Reviewing files that changed from the base of the PR and between 224c2c0 and 6bfa43c.

📒 Files selected for processing (2)
  • docs/.vitepress/config.mts
  • docs/api-reference/members/remove-workspace-member.md

Comment on lines +19 to +31
<div class="params-section">

### Path parameters

<div class="params-list">

<ApiParam name="slug" type="string" :required="true">

The unique identifier (slug) for the workspace.

</ApiParam>

</div>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Heading level skips from h1 to h3.

Per the markdownlint MD001 rule, heading levels should increment by one. The document jumps from # Remove workspace member (h1) directly to ### Path parameters (h3), skipping h2.

Consider wrapping the parameters sections under an h2 heading for proper document structure:

Proposed fix
 <div class="params-section">
 
+## Parameters
+
 ### Path parameters
📝 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.

Suggested change
<div class="params-section">
### Path parameters
<div class="params-list">
<ApiParam name="slug" type="string" :required="true">
The unique identifier (slug) for the workspace.
</ApiParam>
</div>
<div class="params-section">
## Parameters
### Path parameters
<div class="params-list">
<ApiParam name="slug" type="string" :required="true">
The unique identifier (slug) for the workspace.
</ApiParam>
</div>
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 21-21: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/api-reference/members/remove-workspace-member.md` around lines 19 - 31,
The document skips from h1 to h3 causing an MD001 lint violation; change the
"### Path parameters" heading to an h2 ("## Path parameters") and similarly
promote any sibling sections under the <div class="params-section"> (e.g., other
"###" headings) to h2 so headings increment by one; ensure the ApiParam block
remains unchanged and that the new h2 wraps the <div class="params-section">
content to restore proper heading hierarchy.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
docs/api-reference/members/remove-workspace-member.md (1)

21-21: ⚠️ Potential issue | 🟡 Minor

Promote these section headings to ##.

The page still jumps from the h1 on Line 7 straight to h3 section headings, so markdownlint MD001 remains unresolved.

Also applies to: 36-36, 57-57, 65-65, 85-85

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/api-reference/members/remove-workspace-member.md` at line 21, The
document uses h3 (###) for major sections like the "Path parameters" heading
(and the other section headings noted) which skips from the page h1 to h3 and
triggers markdownlint MD001; change those headings from ### to ## so they are
level-2 headings (promote "Path parameters" and any other headings currently
using three hashes to two hashes) to restore proper heading hierarchy.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/api-reference/members/remove-workspace-member.md`:
- Around line 99-107: The cURL example in the remove-workspace-member snippet
contains an inline shell comment after a backslash which breaks copy-paste;
update the example so the auth alternative (-H "Authorization: Bearer
$PLANE_OAUTH_TOKEN") is not placed on a continued line—either move that comment
to its own separate code block/snippet or place it on its own non-continued line
above/below the curl command so the backslashes and continuations remain valid
when pasted.
- Around line 148-152: The ResponsePanel for the 204 response currently contains
a JSON code fence with "No Content", which implies a payload; update the
<ResponsePanel status="204"> usage to not include a JSON block—either leave the
panel empty or replace the fenced JSON with plain text like "No response body"
(no JSON formatting). Ensure you only use <ResponsePanel> JSON examples for
responses that actually return a body; keep the change scoped to the
ResponsePanel with status="204".

---

Duplicate comments:
In `@docs/api-reference/members/remove-workspace-member.md`:
- Line 21: The document uses h3 (###) for major sections like the "Path
parameters" heading (and the other section headings noted) which skips from the
page h1 to h3 and triggers markdownlint MD001; change those headings from ### to
## so they are level-2 headings (promote "Path parameters" and any other
headings currently using three hashes to two hashes) to restore proper heading
hierarchy.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ebc45f3c-df28-47ad-8a71-c9d7b9644257

📥 Commits

Reviewing files that changed from the base of the PR and between 6bfa43c and aaf7939.

📒 Files selected for processing (1)
  • docs/api-reference/members/remove-workspace-member.md

Comment on lines +99 to +107
curl -X POST \
"https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"remove_seat": true
}'
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

The cURL example breaks when copied into a shell.

The inline # Or use ... comment comes after a line continuation, so the shell treats the rest of the command as commented out. Move the auth alternative outside the continued command or split it into a separate snippet.

Suggested fix
 curl -X POST \
   "https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/" \
   -H "X-API-Key: $PLANE_API_KEY" \
-  # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
   -H "Content-Type: application/json" \
   -d '{
   "email": "jane@example.com",
   "remove_seat": true
 }'
+
+# Or replace the API key header with:
+# -H "Authorization: Bearer $PLANE_OAUTH_TOKEN"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/api-reference/members/remove-workspace-member.md` around lines 99 - 107,
The cURL example in the remove-workspace-member snippet contains an inline shell
comment after a backslash which breaks copy-paste; update the example so the
auth alternative (-H "Authorization: Bearer $PLANE_OAUTH_TOKEN") is not placed
on a continued line—either move that comment to its own separate code
block/snippet or place it on its own non-continued line above/below the curl
command so the backslashes and continuations remain valid when pasted.

Comment on lines +148 to +152
<ResponsePanel status="204">

```json
No Content
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Don’t present a 204 response as JSON.

No Content inside a json fence implies the endpoint returns a JSON payload, but a 204 response has no body. Use plain text such as “No response body” or leave the panel empty if the component supports it. As per coding guidelines, docs/api-reference/**/*.md: Use <ResponsePanel> component for syntax-highlighted API response JSON examples.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/api-reference/members/remove-workspace-member.md` around lines 148 -
152, The ResponsePanel for the 204 response currently contains a JSON code fence
with "No Content", which implies a payload; update the <ResponsePanel
status="204"> usage to not include a JSON block—either leave the panel empty or
replace the fenced JSON with plain text like "No response body" (no JSON
formatting). Ensure you only use <ResponsePanel> JSON examples for responses
that actually return a body; keep the change scoped to the ResponsePanel with
status="204".

@srinivaspendem srinivaspendem merged commit 175b269 into master Mar 11, 2026
8 checks passed
@srinivaspendem srinivaspendem deleted the remove-workspace-member branch March 11, 2026 11:07
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.

2 participants