Skip to content

FLOW-1758: Add attribute to track RDS/RDE paid or unpaid seat in feedback collector - (Rovo Dev)#1756

Open
Blastoplex wants to merge 4 commits intomainfrom
FLOW-1758-add-attribute-to-include-what-rds-rde-paid-or-unpaid-seat-a-user-is-on-via-feedb
Open

FLOW-1758: Add attribute to track RDS/RDE paid or unpaid seat in feedback collector - (Rovo Dev)#1756
Blastoplex wants to merge 4 commits intomainfrom
FLOW-1758-add-attribute-to-include-what-rds-rde-paid-or-unpaid-seat-a-user-is-on-via-feedb

Conversation

@Blastoplex
Copy link
Copy Markdown
Contributor

@Blastoplex Blastoplex commented Mar 24, 2026


Rovo Dev code review: Rovo Dev is reviewing this pull request…
Refresh the page in a few minutes to see the results.

Add user entitlement type (RDS/RDE paid or unpaid seat) to the feedback collector context in RovoDevFeedbackManager. This enables better triage and analysis of feedback by seat type. The entitlement type is fetched asynchronously from the entitlement checker and included in the feedback context. Tests are added to verify inclusion of entitlement type for entitled, non-entitled, and error cases.
…rde-paid-or-unpaid-seat-a-user-is-on-via-feedb
const entitlement = await Container.rovoDevEntitlementChecker.checkEntitlement();
entitlementType = entitlement.type;
} catch {
entitlementType = 'unknown';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔎 Code Readability

The variable assignment on line 109 is redundant since entitlementType is already initialized to 'unknown' on line 104.

Details

📖 Explanation: Removing the redundant assignment in the catch block would simplify the code since the variable is already initialized with the fallback value.

Suggested change
entitlementType = 'unknown';
// Intentionally leave entitlementType as 'unknown' when the entitlement check fails

Uses AI. Verify results. Give Feedback

cabella-dot
cabella-dot previously approved these changes Mar 25, 2026
Copy link
Copy Markdown
Contributor

@cabella-dot cabella-dot left a comment

Choose a reason for hiding this comment

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

lgtm!

@Blastoplex Blastoplex enabled auto-merge (squash) March 25, 2026 03:57
Remove all instances of the "peer": true field from package-lock.json entries. This cleanup reduces unnecessary metadata clutter in the lock file without affecting package resolution or functionality.
…OW-1758-add-attribute-to-include-what-rds-rde-paid-or-unpaid-seat-a-user-is-on-via-feedb
@atlassian
Copy link
Copy Markdown
Contributor

atlassian bot commented Apr 7, 2026

The issue is ready for review.

The below acceptance criteria have not been met:

  • ❌ The chat extension feedback collector must include an attribute indicating whether the user's seat is paid or unpaid.

Code Reviewer could not determine whether the following acceptance criteria have been met:

  • The chat extension feedback collector must include an attribute indicating whether the user is on RDS or RDE.
  • The attribute(s) indicating product (RDS/RDE) and paid/unpaid status must be included in the feedback payload sent by the chat extension feedback collector (atlascode).

Check Jira issue

const entitlement = await Container.rovoDevEntitlementChecker.checkEntitlement();
entitlementType = entitlement.type;
} catch {
entitlementType = 'unknown';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔎 Code Readability

The error handling in the catch block reassigns entitlementType to 'unknown' which is redundant since it's already initialized to 'unknown'.

Details

📖 Explanation: Removing the redundant assignment in the catch block simplifies the code since the variable is already initialized with the fallback value, making the error handling more concise.

Suggested change
entitlementType = 'unknown';
// entitlementType remains 'unknown' if the entitlement check fails

Uses AI. Verify results. Give Feedback

fields: expect.arrayContaining([
expect.objectContaining({
id: 'customfield_10047',
value: expect.stringContaining('"entitlementType": "ROVO_DEV_EVERYWHERE"'),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔎 Testing

The test assertion uses expect.stringContaining to check for JSON content, but this approach is fragile and could match partial strings incorrectly.

Details

📖 Explanation: Using JSON.parse on the value and then checking the parsed object's properties would be more robust and less prone to false positives than string matching.

Uses AI. Verify results. Give Feedback

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