Skip to content
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

fix: trim spaces in strings for names #2527

Merged
merged 10 commits into from
Oct 28, 2024

Conversation

MichaelUnkey
Copy link
Collaborator

@MichaelUnkey MichaelUnkey commented Oct 21, 2024

What does this PR do?

Added extra validation to stop names with only spaces.

Fixes # (issue)
Eng-1518

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)
  • Enhancement (small improvements)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How should this be tested?

Validate changes do not cause issues for some reason.

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read Contributing Guide
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand areas
  • Ran pnpm build
  • Ran pnpm fmt
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Unkey Docs if changes were necessary

Summary by CodeRabbit

  • New Features

    • Enhanced input validation for various forms, ensuring that fields like name, ownerId, and identifier require a minimum length of 3 characters and cannot consist solely of whitespace.
    • Added regex validation for specific fields to enforce formatting rules, including alphanumeric characters, underscores, hyphens, and periods.
  • Bug Fixes

    • Improved validation logic to prevent submission of invalid or empty names across multiple components.
  • Documentation

    • Updated error messages to provide clearer feedback for validation failures.

Copy link

linear bot commented Oct 21, 2024

Copy link

changeset-bot bot commented Oct 21, 2024

⚠️ No Changeset found

Latest commit: 8c49190

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Oct 21, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
dashboard ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 23, 2024 0:38am
engineering ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 23, 2024 0:38am
play ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 23, 2024 0:38am
workflows ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 23, 2024 0:38am
www ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 23, 2024 0:38am

Copy link
Contributor

github-actions bot commented Oct 21, 2024

Thank you for following the naming conventions for pull request titles! 🙏

Copy link
Contributor

coderabbitai bot commented Oct 21, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

This pull request introduces enhancements to the validation logic across multiple components within the dashboard application. Key modifications include the introduction of trimming and minimum length requirements for various fields in form schemas, ensuring that inputs are not just whitespace and meet specified character limits. These changes apply to components such as UpdateKeyName, UpdateKeyOwnerId, CreateKey, UpdateApiName, and others, all aimed at improving input validation without altering the overall functionality or control flow of the components.

Changes

File Path Change Summary
apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-name.tsx Added refinement to name field to ensure it is a trimmed string if provided.
apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-owner-id.tsx Updated ownerId field to include trimming and refinement for non-empty values.
apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx Enhanced validation for prefix, ownerId, and name fields to ensure they are trimmed and not whitespace.
apps/dashboard/app/(app)/apis/[apiId]/settings/update-api-name.tsx Updated name field to require a minimum length of 3 characters and prevent whitespace-only submissions.
apps/dashboard/app/(app)/apis/create-api-button.tsx Increased name field minimum length from 2 to 3 characters and added trimming validation.
apps/dashboard/app/(app)/authorization/roles/[roleId]/update-role.tsx Enhanced name field validation to require a minimum length of 3 characters and specific regex pattern.
apps/dashboard/app/(app)/ratelimits/[namespaceId]/overrides/create-new-override.tsx Updated identifier field to require a minimum length of 3 characters and added trimming validation.
apps/dashboard/app/(app)/ratelimits/[namespaceId]/settings/update-namespace-name.tsx Updated name field to include regex validation for specific character requirements and length constraints.
apps/dashboard/app/new/create-api.tsx Modified name field validation to ensure it is a trimmed string with a minimum length of 3 characters.
apps/dashboard/app/new/create-workspace.tsx Enhanced name field validation to include trimming and length constraints of 3 to 50 characters.
apps/dashboard/app/(app)/ratelimits/create-namespace-button.tsx Updated name field validation to include trimming, regex pattern, and maximum length constraint of 50 characters.
apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx Modified name field validation to include trimming and existing constraints of minimum length and regex pattern.

Possibly related PRs

  • feat: Add default bytes and prefix #2146: This PR modifies the CreateKey component in the same file as the main PR, specifically enhancing the form schema by adding a .trim() method to the name field, which aligns with the changes made in the main PR to improve validation logic for the name field.
  • fix(dashboard): hydration warnings #2253: Although primarily focused on fixing hydration warnings, this PR involves the RolesPage component, which may share similar validation logic or form handling practices as the UpdateKeyName component in the main PR, indicating a potential indirect relationship in terms of component structure and validation practices.
  • fix: weird spacing in changelog by removing the extra gap #2340: This PR addresses spacing issues in the changelog components, which may not directly relate to the validation changes in the main PR but indicates ongoing improvements in UI components that could be relevant in a broader context of user interface consistency across the application.

Suggested labels

Bug, 🕹️ oss.gg, :joystick: 150 points, hacktoberfest

Suggested reviewers

  • mcstepp
  • chronark
  • perkinsjr

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 97e255f and 8c49190.

📒 Files selected for processing (1)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@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: 3

🧹 Outside diff range and nitpick comments (13)
apps/dashboard/app/(app)/ratelimits/[namespaceId]/settings/update-namespace-name.tsx (1)

Line range hint 1-95: Consider improving user feedback and error handling

While the validation change is a good improvement, consider enhancing the overall user experience:

  1. The current implementation doesn't provide real-time feedback on input validity. Consider adding error messages directly in the form, perhaps using the FormMessage component from your UI library.

  2. The onSubmit function's error handling could be more specific. Instead of a generic "Please provide a valid name" message, it could explain the exact requirements (e.g., "Name must be 3-50 characters and contain only letters, numbers, underscores, hyphens, and periods").

  3. The component doesn't handle the case where the new name might already exist. Consider adding a uniqueness check if applicable.

To improve the component's robustness and user-friendliness, consider implementing these suggestions. If you'd like assistance in drafting these improvements, please let me know.

apps/dashboard/app/(app)/apis/[apiId]/settings/update-api-name.tsx (2)

21-24: Improved input validation for API name.

The changes enhance the validation for the 'name' field, aligning with the PR objectives. The minimum length requirement and whitespace trimming effectively prevent empty or space-only names.

Consider adding a maximum length constraint to prevent excessively long API names. For example:

 name: z
   .string()
   .min(3, "Name is required and should be at least 3 characters")
+  .max(50, "Name should not exceed 50 characters")
   .refine((v) => v.trim()),

Line range hint 55-57: Enhanced submission validation in onSubmit function.

The additional checks prevent unnecessary API calls and ensure that only valid names are submitted, improving the component's efficiency and reliability.

Consider using the trim() method when comparing the new name with the current name to handle cases where only whitespace has been added or removed:

- if (values.name === api.name || !values.name) {
+ if (values.name.trim() === api.name.trim() || !values.name.trim()) {
    return toast.error("Please provide a valid name before saving.");
  }
apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-name.tsx (1)

28-28: Approve changes with a minor suggestion.

The added refinement effectively prevents names consisting solely of whitespace, aligning with the PR objectives. This improvement enhances input validation without altering the component's core functionality.

Consider adding a minimum length requirement to further improve validation. For example:

.refine((v) => !v || v.trim().length >= 1, {
  message: "Name must not be empty when provided",
})

This ensures that if a name is provided, it contains at least one non-whitespace character.

apps/dashboard/app/(app)/apis/create-api-button.tsx (1)

26-30: LGTM! Consider adding a custom error message for the trim refinement.

The changes to the formSchema effectively address the PR objectives by increasing the minimum length requirement and adding a trim refinement. This aligns well with the updates made in other components.

Consider adding a custom error message for the trim refinement to provide more specific feedback to the user. For example:

.refine((v) => v.trim().length > 0, {
  message: "Name cannot consist only of whitespace",
})

This would give users clearer feedback if they attempt to submit a name consisting only of spaces.

apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-owner-id.tsx (2)

27-28: Approve changes with a minor suggestion.

The refinement and transformation added to the ownerId field effectively prevent names consisting solely of spaces, aligning with the PR objectives. This approach maintains backwards compatibility while improving input validation.

Consider combining the .refine() and .transform() methods for better readability:

ownerId: z
  .string()
  .transform((v) => v.trim())
  .refine((v) => v !== "", { message: "Owner ID cannot be empty" })
  .optional()

This suggestion maintains the same functionality while making the intent clearer.


Line range hint 1-115: Approve overall implementation with a suggestion for improved error messaging.

The changes to the formSchema effectively improve input validation without impacting the overall component functionality. The existing error handling and UI feedback mechanisms are sufficient for the new validation rules.

Consider adding a custom error message to the .refine() method to provide more specific feedback to the user:

ownerId: z
  .string()
  .refine((v) => (v ? v.trim() : undefined), {
    message: "Owner ID cannot consist only of whitespace"
  })
  .transform((e) => (e === "" ? undefined : e))
  .optional(),

This will enhance the user experience by providing clearer error messages when input validation fails.

apps/dashboard/app/new/create-workspace.tsx (2)

Line range hint 71-72: Ensure trimmed name value is used when creating the workspace.

Currently, the form submission doesn't explicitly trim the name value before sending it to the server. To maintain consistency between validation and stored data, consider modifying the form submission as follows:

onSubmit={form.handleSubmit((values) => createWorkspace.mutate({ 
  ...values,
  name: values.name.trim() 
}))}

This change ensures that the trimmed name is used when creating the workspace, aligning with the validation logic.


Line range hint 86-86: Update form description to reflect trimming behavior.

To improve user understanding and align with the PR objective, consider updating the form description for the name field. Change the following line:

- <FormDescription>What should your workspace be called?</FormDescription>
+ <FormDescription>What should your workspace be called? Leading and trailing spaces will be removed.</FormDescription>

This change informs users about the trimming behavior, potentially reducing confusion and improving the user experience.

apps/dashboard/app/new/create-api.tsx (1)

Line range hint 93-106: Consider adding real-time feedback for input length

To improve user experience, consider adding real-time feedback on the input length after trimming. This will help users understand why their input might be rejected even if it visually appears to meet the length requirement.

You can modify the FormDescription component to include this feedback:

 <FormDescription>
   <p>What should your api be called?</p>
   <p>This is just for you, and will not be visible to your customers</p>
+  <p>Current length: {field.value.trim().length} (min: 3, max: 50)</p>
 </FormDescription>

This change will provide users with immediate feedback on their input length, helping them understand and correct any issues before submission.

apps/dashboard/app/(app)/authorization/roles/[roleId]/update-role.tsx (1)

40-46: Improved validation for the role name field.

The changes enhance the input validation for the role name, which aligns well with the PR objectives. The minimum length requirement and the regex pattern help ensure consistent and meaningful role names.

Consider updating the error message to explicitly mention that spaces are not allowed:

- "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores",
+ "Must be at least 3 characters long and only contain alphanumeric characters, colons, periods, dashes, and underscores (no spaces allowed)",

This change would provide clearer guidance to users about the exact requirements for the role name.

apps/dashboard/app/(app)/ratelimits/[namespaceId]/overrides/create-new-override.tsx (1)

31-35: Approved: Improved validation for the identifier field

The changes effectively address the PR objective by preventing names consisting solely of spaces and enhancing the overall validation:

  1. Increased minimum length requirement from 2 to 3 characters.
  2. Added refinement to trim whitespace and ensure non-empty strings.
  3. Updated error message to reflect the new minimum length requirement.

These improvements align with the broader effort to enhance input validation across the application.

Consider updating the error message to explicitly mention the trimming of whitespace:

.min(3, "Name is required, should be at least 3 characters, and cannot consist only of whitespace")

This change would provide users with more precise feedback on the validation requirements.

apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx (1)

Line range hint 1-1000: Overall, the changes effectively address the whitespace issue.

The modifications to the form schema validation logic successfully prevent names consisting solely of spaces, addressing the main objective of this PR. The changes are focused and minimal, which reduces the risk of unintended side effects.

For consistency, consider applying similar validation to other optional string fields in the form, such as environment, if appropriate for your use case.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 34831dc and 2d74714.

📒 Files selected for processing (10)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-name.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-owner-id.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/[apiId]/settings/update-api-name.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/create-api-button.tsx (1 hunks)
  • apps/dashboard/app/(app)/authorization/roles/[roleId]/update-role.tsx (1 hunks)
  • apps/dashboard/app/(app)/ratelimits/[namespaceId]/overrides/create-new-override.tsx (1 hunks)
  • apps/dashboard/app/(app)/ratelimits/[namespaceId]/settings/update-namespace-name.tsx (1 hunks)
  • apps/dashboard/app/new/create-api.tsx (1 hunks)
  • apps/dashboard/app/new/create-workspace.tsx (1 hunks)
🧰 Additional context used
🔇 Additional comments (3)
apps/dashboard/app/(app)/apis/create-api-button.tsx (1)

Line range hint 32-100: Verify integration of new validation rules

The changes to the formSchema are well-integrated into the existing CreateApiButton component. The component structure and logic remain unchanged, which is appropriate given the nature of the modifications.

To ensure the new validation rules are being applied correctly, please run the following test cases:

  1. Attempt to submit the form with a 2-character name (should fail).
  2. Attempt to submit the form with a name consisting only of spaces (should fail).
  3. Attempt to submit the form with a valid name with leading/trailing spaces (should pass, but trim the spaces).

You can use the following script to search for any hardcoded test cases or snapshots that might need updating:

Please update any affected tests or snapshots to reflect the new validation rules.

apps/dashboard/app/new/create-workspace.tsx (1)

Line range hint 1-114: Summary and Final Recommendation

The changes in this file align with the PR objective of enhancing validation for the workspace name. The addition of the .refine() method is a good start, but there are opportunities for further improvements:

  1. Strengthen the name validation to fully prevent names consisting solely of spaces.
  2. Ensure the trimmed name is used when creating the workspace.
  3. Update the form description to inform users about the trimming behavior.

These suggestions will help to fully meet the PR objective and improve the overall user experience. Once these changes are implemented, the file should be ready for approval.

apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx (1)

60-69: Improved input validation for prefix, ownerId, and name fields.

The addition of .refine() methods to trim whitespace and ensure non-empty values for the prefix, ownerId, and name fields is a good improvement. This change aligns with the PR objective of preventing names consisting solely of spaces and enhances the overall input validation.

apps/dashboard/app/new/create-workspace.tsx Outdated Show resolved Hide resolved
apps/dashboard/app/new/create-api.tsx Outdated Show resolved Hide resolved
@perkinsjr perkinsjr self-assigned this Oct 21, 2024
Copy link
Collaborator

@perkinsjr perkinsjr left a comment

Choose a reason for hiding this comment

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

Can we not do this instead of using refine as an example

name : z.string().trim().min(3,"Name must be at least 3 characters long").max()

Copy link
Contributor

@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

🧹 Outside diff range and nitpick comments (1)
apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx (1)

21-23: Approve with suggestions: Enhance validation and improve user experience

The addition of .trim() to the name field validation is a good improvement that prevents submission of names consisting only of whitespace, aligning with the PR objective. However, there are a couple of points to consider:

  1. The trim operation occurs before the min(3) check. This could lead to valid inputs being rejected. For example, " ab " would be trimmed to "ab" and then fail the minimum length check.

  2. The UI doesn't reflect the trimming, which might confuse users.

Consider the following improvements:

  1. Adjust the minimum length check:
name: z.string().trim().min(1).regex(validCharactersRegex, {
  message: "Workspace name must contain at least one letter, number, dash, or underscore",
})
  1. Update the UI to reflect the trimmed input:
<Input
  {...field}
  className="max-w-sm"
  defaultValue={workspace.name}
  onChange={(e) => field.onChange(e.target.value.trim())}
/>

These changes will ensure that the validation is consistent with the user's input and provide a better user experience.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 2d74714 and 1075940.

📒 Files selected for processing (11)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-name.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-owner-id.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/[apiId]/settings/update-api-name.tsx (1 hunks)
  • apps/dashboard/app/(app)/apis/create-api-button.tsx (1 hunks)
  • apps/dashboard/app/(app)/ratelimits/[namespaceId]/overrides/create-new-override.tsx (1 hunks)
  • apps/dashboard/app/(app)/ratelimits/[namespaceId]/settings/update-namespace-name.tsx (2 hunks)
  • apps/dashboard/app/(app)/ratelimits/create-namespace-button.tsx (1 hunks)
  • apps/dashboard/app/(app)/settings/general/update-workspace-name.tsx (1 hunks)
  • apps/dashboard/app/new/create-api.tsx (1 hunks)
  • apps/dashboard/app/new/create-workspace.tsx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (9)
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-name.tsx
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-owner-id.tsx
  • apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/new/client.tsx
  • apps/dashboard/app/(app)/apis/[apiId]/settings/update-api-name.tsx
  • apps/dashboard/app/(app)/apis/create-api-button.tsx
  • apps/dashboard/app/(app)/ratelimits/[namespaceId]/overrides/create-new-override.tsx
  • apps/dashboard/app/(app)/ratelimits/[namespaceId]/settings/update-namespace-name.tsx
  • apps/dashboard/app/new/create-api.tsx
  • apps/dashboard/app/new/create-workspace.tsx
🧰 Additional context used

@chronark chronark added this pull request to the merge queue Oct 28, 2024
Merged via the queue into main with commit 8fb9d4d Oct 28, 2024
26 of 27 checks passed
@chronark chronark deleted the eng-1518-i-can-create-a-new-api-without-a-name branch October 28, 2024 13:28
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.

3 participants