-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Add epim extension #17888
Add epim extension #17888
Conversation
- Prettify Code - Improve Docs - Minor improvement to the UI - Add Option to see active assignements - Update Docs - Catch some graph "non-error" responses - Initial commit
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.
PR Summary
This PR adds a new extension for managing Microsoft Entra PIM (Privileged Identity Management) roles through Raycast, enabling users to view and activate privileged roles with justification and duration settings.
- CHANGELOG.md entries use actual dates (2025-03-14, 2025-03-13) instead of required
{PR_MERGE_DATE}
template string - "Assignements" is misspelled in CHANGELOG.md title (should be "Assignments")
- Since this is a
view
command in package.json, ametadata
folder with screenshots should be included - Consider using
showFailureToast
from@raycast/utils
in try-catch blocks instead of manualshowToast
with failure style - The extension title "Entra Pim Role" in package.json should be consistent with "Entra PIM Role" (capitalization) in other places
💡 (1/5) You can manually trigger the bot by mentioning @greptileai in a comment!
8 file(s) reviewed, 11 comment(s)
Edit PR Review Bot Settings | Greptile
extensions/epim/CHANGELOG.md
Outdated
@@ -0,0 +1,13 @@ | |||
# Entra PIM Role Changelog | |||
|
|||
## [Active Assignements indicator] - 2025-03-14 |
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.
syntax: Replace ## [Active Assignements indicator] - 2025-03-14
with ## [Active Assignments indicator] - {PR_MERGE_DATE}
## [Active Assignements indicator] - 2025-03-14 | |
## [Active Assignments indicator] - {PR_MERGE_DATE} |
extensions/epim/CHANGELOG.md
Outdated
# Entra PIM Role Changelog | ||
|
||
## [Active Assignements indicator] - 2025-03-14 | ||
- Add Option to see active assignements |
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.
syntax: Fix spelling of 'assignments'
- Add Option to see active assignements | |
- Add Option to see active assignments |
extensions/epim/README.md
Outdated
2. Ensure that Powershell for macOS is installed. | ||
2. Ensure that the following Powershell modules are installed. |
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.
syntax: Duplicate numbering '2.' in installation steps
2. Ensure that Powershell for macOS is installed. | |
2. Ensure that the following Powershell modules are installed. | |
2. Ensure that Powershell for macOS is installed. | |
3. Ensure that the following Powershell modules are installed. |
extensions/epim/README.md
Outdated
2. Ensure that the following Powershell modules are installed. | ||
* `Microsoft.Graph.Authentication` | ||
* `Microsoft.Graph.Identity.Governance` |
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.
style: Installation steps should include instructions for installing these PowerShell modules
2. Ensure that the following Powershell modules are installed. | |
* `Microsoft.Graph.Authentication` | |
* `Microsoft.Graph.Identity.Governance` | |
3. Ensure that the following Powershell modules are installed using: | |
```powershell | |
Install-Module Microsoft.Graph.Authentication | |
Install-Module Microsoft.Graph.Identity.Governance |
extensions/epim/README.md
Outdated
|
||
## License | ||
|
||
This extension is licensed under the MIT License |
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.
syntax: Missing period at end of sentence
This extension is licensed under the MIT License | |
This extension is licensed under the MIT License. |
extensions/epim/package.json
Outdated
{ | ||
"$schema": "https://www.raycast.com/schemas/extension.json", | ||
"name": "epim", | ||
"title": "Entra Pim Role", |
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.
style: Title has inconsistent capitalization - 'Pim' should be 'PIM' since it's an acronym
"title": "Entra Pim Role", | |
"title": "Entra PIM Role", |
extensions/epim/package.json
Outdated
"commands": [ | ||
{ | ||
"name": "epim", | ||
"title": "Entra Pim Role", |
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.
style: Command title has same inconsistent capitalization - 'Pim' should be 'PIM'
"title": "Entra Pim Role", | |
"title": "Entra PIM Role", |
extensions/epim/package.json
Outdated
"subtitle": "Activate Entra Role via PIM with Graph", | ||
"description": "Activate Entra Role via PIM with Graph", |
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.
style: Subtitle and description are identical - consider making the subtitle more concise and descriptive
extensions/epim/src/epim.tsx
Outdated
target={<JustificationForm role={role} userId={userId} />} | ||
disabled={role.isActive} | ||
/> | ||
{role.isActive && <Action title="Show Active Until" shortcut={{ modifiers: ["cmd"], key: "i" }} />} |
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.
logic: The 'Show Active Until' action has a shortcut but no handler implementation
{role.isActive && <Action title="Show Active Until" shortcut={{ modifiers: ["cmd"], key: "i" }} />} | |
{role.isActive && <Action title="Show Active Until" onAction={() => showToast({ title: `Active until ${formatDateTime(role.endDateTime)}` })} shortcut={{ modifiers: ["cmd"], key: "i" }} />} |
extensions/epim/src/epim.tsx
Outdated
title="Remaining Time" | ||
text={{ value: role.remainingTime, color: Color.Green } || { value: "", color: Color.Green }} | ||
/> |
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.
logic: The OR condition here will never be reached since role.remainingTime is always defined when isActive is true
title="Remaining Time" | |
text={{ value: role.remainingTime, color: Color.Green } || { value: "", color: Color.Green }} | |
/> | |
title="Remaining Time" | |
text={{ value: role.remainingTime, color: Color.Green }} | |
/> |
Congratulations on your new Raycast extension! 🚀 Due to our current reduced availability, the initial review may take up to 10-15 business days Once the PR is approved and merged, the extension will be available on our Store. |
- Fix errors from PR check - Update README with screenshots
interface Preferences { | ||
powershellPath: string; | ||
} | ||
|
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.
interface Preferences { | |
powershellPath: string; | |
} |
You don't need to manually set preference types as this is autogenerated in raycast-env.d.ts
Could you show me a screencast of how this extension works? 😊 |
Untitled-1.mov |
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.
Hi 👋
Looks good to me, approved 🔥
Published to the Raycast Store: |
🎉 🎉 🎉 We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag. |
Description
Screencast
Checklist
npm run build
and tested this distribution build in Raycastassets
folder are used by the extension itselfREADME
are placed outside of themetadata
folder