You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove fine-grained token implementation and revert to checking only
public organization membership using default GITHUB_TOKEN:
- Remove github_token input parameter from action
- Remove token passing from workflow
- Update logic to only detect public members (HTTP 200 + content)
- Block private members and provide clear instructions to make membership public
- Update documentation to explain public membership requirement
- Add helpful messaging directing users to github.com/orgs/dotCMS/people
This approach requires dotCMS team members to make their org membership
public to access Claude workflows, but avoids token management complexity.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
@@ -41,23 +40,27 @@ This composite action checks if a GitHub user is a member of the dotCMS organiza
41
40
42
41
The action uses the GitHub CLI (`gh`) with the repository's `GITHUB_TOKEN` to check organization membership via the GitHub API endpoint `GET /orgs/dotCMS/members/{username}`.
43
42
44
-
**Key Design Decision: Status Code vs Response Body**
43
+
**Important Limitation: Public Membership Only**
45
44
46
-
The action relies on HTTP status codes rather than parsing response content because:
45
+
This approach only detects users with **public** organization membership:
47
46
48
-
- **HTTP 200 (Success)**: User is a member of the organization
49
-
- Public members: API returns user object with populated fields
50
-
- Private members: API returns empty response body (but still 200 OK)
47
+
- **HTTP 200 + user object**: User is a PUBLIC member → **AUTHORIZED**
48
+
- **HTTP 404**: User has private membership OR is not a member → **BLOCKED**
51
49
52
-
- **HTTP 404 (Not Found)**: User is not a member of the organization
53
-
- Returns error object with "Not Found" message
50
+
**For dotCMS Team Members with Private Membership:**
54
51
55
-
This approach correctly authorizes all organization members (including owners with private membership) without needing to handle different response formats or visibility settings.
52
+
If you are a dotCMS organization member but have private membership visibility, you must make your membership public to access Claude workflows:
53
+
54
+
1. Visit: https://github.com/orgs/dotCMS/people
55
+
2. Find your username in the list
56
+
3. Click "Make public" next to your name
57
+
58
+
This ensures the security gate can detect your organization membership without requiring additional API tokens.
56
59
57
60
## Security Considerations
58
61
59
62
- Only checks membership in the dotCMS organization (hardcoded)
60
-
- Does not expose whether membership is public or private
63
+
- Only authorizes users with public organization membership
61
64
- Logs authorization results without sensitive details
0 commit comments