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

feat: add nu-lang support #5217

Open
wants to merge 75 commits into
base: main
Choose a base branch
from
Open

feat: add nu-lang support #5217

wants to merge 75 commits into from

Conversation

pyranota
Copy link
Contributor

@pyranota pyranota commented Feb 5, 2025

Important

This PR adds comprehensive support for the Nu language, including parsers, initial script templates, Docker configurations, and UI integration.

  • Nu Language Support:
    • Added Nu language support in backend/parsers/windmill-parser-nu with parsing logic in src/lib.rs and tests in tests/tests.rs.
    • Updated backend/Cargo.toml and backend/Cargo.lock to include Nu parser dependencies.
    • Added initial Nu script template in frontend/src/lib/script_helpers.ts.
    • Integrated Nu language in frontend components, including ScriptBuilder.svelte, HighlightCode.svelte, and editorUtils.ts.
    • Added Nu icon in NuIcon.svelte.
  • Docker and Build Configurations:
    • Updated Dockerfiles (DockerfileBackendTests, DockerfileFull, etc.) to include Nu installation.
    • Modified build-pkgs.sh and build-pkgs-mac.sh to build Nu parser packages.
    • Added Nu feature to GitHub Actions workflows (build-publish-rh-image.yml, etc.).
  • Miscellaneous:
    • Updated lsp/dev.nu and docker/dev.nu scripts for Nu language support.
    • Added Nu language to supported languages in frontend/src/lib/scripts.ts and infer.ts.

This description was created by Ellipsis for 5c2320e. It will automatically update as commits are pushed.

Copy link

cloudflare-workers-and-pages bot commented Feb 5, 2025

Deploying windmill with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9646d50
Status: ✅  Deploy successful!
Preview URL: https://0a8325dc.windmill.pages.dev
Branch Preview URL: https://nu-lang.windmill.pages.dev

View logs

full support will come in V1
for V0 it's better to keep things minimal and simple
used python's grammar, since nushell isn't supported by monaco nor svelte-highlights

for V1 nu will get it`s own grammar
@rubenfiszel rubenfiszel force-pushed the main branch 3 times, most recently from 30f0807 to 9c57565 Compare February 14, 2025 03:38
@rubenfiszel rubenfiszel force-pushed the main branch 9 times, most recently from 0d0ada6 to 1ef482e Compare February 18, 2025 20:49
Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me! Incremental review on ece4dbf in 2 minutes and 1 seconds

More details
  • Looked at 139 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 13 drafted comments based on config settings.
1. backend/Cargo.lock:7228
  • Draft comment:
    Updated 'syn' to 2.0.99. Ensure this change is intentional and all tests for nu-lang support pass.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the PR author to ensure the change is intentional and that all tests pass, which violates the rules against asking for confirmation or testing. It also mentions a dependency change, which should not be commented on unless it's a recognized issue.
2. backend/Cargo.lock:7469
  • Draft comment:
    Explicit version for 'bit-set' set to 0.5.3. Confirm compatibility with dependent crates.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the PR author to confirm compatibility with dependent crates, which violates the rule against asking the author to ensure compatibility or test dependent parts of the codebase. It does not provide a specific suggestion or point out a specific issue with the code.
3. backend/Cargo.lock:7564
  • Draft comment:
    Bumped 'bitflags' from 2.8.0 to 2.9.0. Verify there are no regressions from this upgrade.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency change, specifically a version bump for the bitflags library. The comment asks the PR author to verify that there are no regressions due to this upgrade. According to the rules, comments on pure dependency changes or asking the author to verify or ensure things are not allowed. Therefore, this comment should be removed.
4. backend/Cargo.lock:7779
  • Draft comment:
    Updated 'thiserror' from 2.0.11 to 2.0.12. Check for any breaking changes in error handling.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is about a dependency update, specifically the 'thiserror' library. The comment suggests checking for breaking changes, which falls under the rule of not commenting on dependency changes or asking the author to ensure compatibility. Therefore, this comment should be removed.
5. backend/Cargo.lock:13917
  • Draft comment:
    Changed 'bit-vec' to explicit version 0.6.3. Ensure downstream dependencies are compatible.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency change, specifically changing 'bit-vec' to version 0.6.3. The comment asks to ensure downstream dependencies are compatible, which violates the rule against asking the PR author to ensure compatibility or test changes. Therefore, this comment should be removed.
6. backend/Cargo.lock:14419
  • Draft comment:
    Bumped 'windmill-parser-nu' from 1.472.1 to 1.474.0. Validate full compatibility with added nu-lang features.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency version change and asks for validation of compatibility, which violates the rules against commenting on dependency changes and asking for validation.
7. backend/Cargo.lock:14763
  • Draft comment:
    Additional instances of 'syn' version update to 2.0.99; ensure consistency across the project.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
8. backend/Cargo.lock:7228
  • Draft comment:
    Bump syn to 2.0.99; verify that dependent code remains compatible (multiple instances updated).
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
9. backend/Cargo.lock:7469
  • Draft comment:
    Explicitly pin bit-set to 0.5.3; ensure this version meets project needs.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
10. backend/Cargo.lock:7564
  • Draft comment:
    Bump bitflags to 2.9.0; review for potential API or compatibility changes.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
11. backend/Cargo.lock:7779
  • Draft comment:
    Update thiserror to 2.0.12; ensure no breaking changes affect error handling.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
12. backend/Cargo.lock:13917
  • Draft comment:
    Explicitly pin bit-vec to 0.6.3; confirm that this version is the intended one.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
13. backend/Cargo.lock:14419
  • Draft comment:
    Bump windmill-parser-nu to 1.474.0 for nu-lang support; verify integration compatibility.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None

Workflow ID: wflow_hMtEpzIqxppmLBWP


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me! Incremental review on 1f69104 in 2 minutes and 4 seconds

More details
  • Looked at 13 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 3 drafted comments based on config settings.
1. backend/windmill-common/src/global_settings.rs:43
  • Draft comment:
    Increase ENV_SETTINGS array length from 57 to 58. Verify that the new entry (likely NU_PATH for nu-lang) is intentional and documented.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50%
    This comment is asking for verification and documentation of an intentional change. Our rules explicitly state not to ask authors to verify their intentions or double-check things. The array size change is a mechanical update that matches the actual array contents, which is something that would be caught by the compiler if incorrect.
    Perhaps the comment is trying to ensure proper documentation of environment variables, which could be important for system configuration?
    While documentation is important, asking for verification of intention violates our rules, and the compiler would catch any mismatch between the array size and contents.
    The comment should be deleted as it asks for verification of intention and the array size change is a mechanical update that would be caught by compilation.
2. backend/windmill-common/src/global_settings.rs:43
  • Draft comment:
    The length annotation changed from 57 to 58—ensure this correctly reflects the number of settings. Consider using a slice (e.g. &[&str]) to avoid manual count updates in the future.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
3. backend/windmill-common/src/global_settings.rs:12
  • Draft comment:
    Typo: The constant 'BUNFIG_INSTALL_SCOPES_SETTING' appears to use a potentially misspelled word ('Bunfig'). Please confirm if it should be 'BUNDLE_INSTALL_SCOPES_SETTING' or another intended spelling.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_0euSB1dWhhGuBvL1


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me! Incremental review on 4160857 in 1 minute and 15 seconds

More details
  • Looked at 13 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 2 drafted comments based on config settings.
1. frontend/package.json:147
  • Draft comment:
    Change from local file dependency to npm package dependency. Ensure that version ^1.474.0 is published and fully compatible with local changes from pkg-nu.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency change, specifically moving from a local file dependency to an npm package dependency. It asks the author to ensure that a specific version is published and compatible, which violates the rule against asking the author to ensure compatibility or verify intentions.
2. frontend/package.json:147
  • Draft comment:
    Changed 'windmill-parser-wasm-nu' from a local file dependency to '^1.474.0'. Ensure that the new version is published and compatible with the rest of the system.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency change, specifically a version update. The comment asks the author to ensure the new version is published and compatible, which violates the rule against asking the author to ensure compatibility or test the change. Therefore, this comment should be removed.

Workflow ID: wflow_WgfIpsrQFch1Ozud


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Skipped PR review on 063cbe4 because no changed files had a supported extension. If you think this was in error, please contact us and we'll fix it right away.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me! Incremental review on dd8c087 in 2 minutes and 17 seconds

More details
  • Looked at 743 lines of code in 7 files
  • Skipped 0 files when reviewing.
  • Skipped posting 12 drafted comments based on config settings.
1. backend/tests/worker.rs:990
  • Draft comment:
    Consider refactoring the long, heavily nested test helpers (e.g. in_test_worker and RunJob chains) into smaller helper functions to improve readability and maintainability.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
2. backend/tests/worker.rs:3450
  • Draft comment:
    The use of a hardcoded 5-second timeout for schedule/error handler tests may lead to flaky tests under load; consider making the timeout configurable or more robust.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. backend/tests/worker.rs:3880
  • Draft comment:
    Many tests use unwrap() liberally. While acceptable in test code, enhanced error reporting (or use of expect with informative messages) may help diagnose issues more clearly.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. backend/tests/worker.rs:4610
  • Draft comment:
    The complex branching and restarted flow logic (e.g., in test functions around complex flow restarts) is hard to follow. Consider adding inline comments explaining the intent and verifying expected outcomes to ease future maintenance.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
5. backend/tests/worker.rs:1018
  • Draft comment:
    Consider handling errors explicitly when creating directories via DirBuilder instead of immediately unwrapping. This would help diagnose failures if the directory creation fails.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. backend/tests/worker.rs:4018
  • Draft comment:
    The global version flags modified in test_for_versions can lead to inter-test dependencies. Consider isolating these state changes per test so tests remain independent.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
7. backend/tests/worker.rs:3794
  • Draft comment:
    Direct string comparisons for job results (in test_result_format) are fragile. Using regex matching or more flexible assertions could improve test resilience against minor message changes.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
8. backend/tests/worker.rs:2570
  • Draft comment:
    In the branchall skip failure tests, error details are parsed using serde_json::from_value into an ErrorResult. Consider using structured error types or adding more context, so that changes in error message formatting won’t break tests unexpectedly.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
9. backend/tests/worker.rs:3030
  • Draft comment:
    The complex flow restart tests are hard to follow. Adding additional inline comments explaining the step‐by‐step logic and expected outcomes would improve maintainability.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
10. backend/tests/worker.rs:3548
  • Draft comment:
    The functions run_deployed_relative_imports and run_preview_relative_imports share similar logic. Consider refactoring to extract common functionality, which would reduce code duplication.
  • Reason this comment was not posted:
    Confidence changes required: 40% <= threshold 50%
    None
11. backend/tests/worker.rs:3247
  • Draft comment:
    A fixed timeout of 5000 ms is used when waiting for schedule error handlers. On slower test environments this may lead to flaky tests; consider parameterizing or increasing the timeout.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
12. backend/tests/worker.rs:4450
  • Draft comment:
    Hardcoding the expected script entrypoint override ('preprocessor') in the flow payload with preprocessor test might be brittle if configuration changes. Consider using a constant or configuration variable for this expected value.
  • Reason this comment was not posted:
    Confidence changes required: 40% <= threshold 50%
    None

Workflow ID: wflow_PVns6nQddLvfuwnu


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me! Incremental review on a2294fc in 2 minutes and 5 seconds

More details
  • Looked at 13 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 3 drafted comments based on config settings.
1. backend/parsers/windmill-parser-nu/tests/tests.rs:4
  • Draft comment:
    Removal of the unused ObjectProperty import looks fine. Ensure that tests using Typ::Object(vec![]) still compile correctly without an explicit ObjectProperty in scope.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to ensure that tests compile correctly, which falls under the rule of not asking the author to ensure the behavior is intended or tested. This is a violation of the rules.
2. backend/parsers/windmill-parser-nu/tests/tests.rs:4
  • Draft comment:
    Removed unused import ObjectProperty. Confirm it's not needed in active tests.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
3. backend/parsers/windmill-parser-nu/tests/tests.rs:492
  • Draft comment:
    There's a minor spacing inconsistency in the signature string in the test_nu_wrapup_sig (line 492). For example, the arguments are defined with extra spaces (e.g., 'a ,b :int,c? , d: string = "foo", bi?: any') which can be cleaned up for readability.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_pd6VN9OkqYcc4CLA


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me! Incremental review on 5c2320e in 2 minutes and 31 seconds

More details
  • Looked at 48 lines of code in 3 files
  • Skipped 0 files when reviewing.
  • Skipped posting 23 drafted comments based on config settings.
1. cli/metadata.ts:120
  • Draft comment:
    Check substring logic: subtracting '.flow' length assumes folder ends with '.flow'. Consider verifying it.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
2. cli/metadata.ts:208
  • Draft comment:
    Using indexOf('.') to derive remotePath may fail if filename has no dot.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. cli/metadata.ts:358
  • Draft comment:
    Fetch call in updateScriptLock: Check rawResponse.ok and handle non-200 responses more robustly.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. cli/metadata.ts:473
  • Draft comment:
    Parsing functions (e.g., parse_python, parse_deno, etc.) assume valid JSON. Add error handling if parsing fails.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
5. cli/metadata.ts:959
  • Draft comment:
    Consider adding delimiters between rawReqs, scriptContent, and metadata for hash clarity.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
6. cli/metadata.ts:817
  • Draft comment:
    Synchronous file write (Deno.writeTextFileSync) in replaceLock may block event loop; consider async alternative.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
7. cli/metadata.ts:853
  • Draft comment:
    When metadata file is missing, file created with createNew:true - ensure this does not override an existing file inadvertently.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
8. cli/metadata.ts:612
  • Draft comment:
    Type conversion in argSigToJsonSchemaType uses several @ts-ignore; review for proper type safety.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
9. cli/metadata.ts:120
  • Draft comment:
    Ensure that the folder name indeed ends with ".flow" before subtracting its length. Otherwise, using substring(0, folder.length - ".flow".length) might lead to incorrect remotePath values.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
10. cli/metadata.ts:160
  • Draft comment:
    Avoid using the non-null assertion on SEP (i.e. 'SEP!'). Since SEP is imported from deps, it should be reliably defined; consider removing the non-null operator for clarity.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
11. cli/metadata.ts:208
  • Draft comment:
    Computing remotePath from scriptPath by taking substring up to first dot may fail for filenames without a dot. Consider using a robust method (e.g. path.parse) to extract the base name.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
12. cli/metadata.ts:358
  • Draft comment:
    When constructing the endpoint URL in updateScriptLock, consider using the URL API rather than string concatenation to improve clarity and avoid potential errors.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
13. cli/metadata.ts:381
  • Draft comment:
    Error handling in updateScriptLock could be improved. Instead of concatenating rawResponse.statusText, responseText, and the caught error, consider structuring the error information (possibly using JSON.stringify) for better diagnostics.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
14. cli/metadata.ts:843
  • Draft comment:
    In parseMetadataFile, when creating a new metadata file, ensure the use of 'createNew' fits your intent. You may want to explicitly check for file existence before writing, to avoid accidental overwrites.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
15. cli/metadata.ts:927
  • Draft comment:
    Consider wrapping the lockfile write operation in updateMetadataGlobalLock within a try/catch block to handle potential file system errors.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
16. cli/metadata.ts:421
  • Draft comment:
    In updateFlow, check the response status before attempting to parse JSON. Using rawResponse.ok or checking status can help avoid errors when the response is not 200.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
17. cli/metadata.ts:612
  • Draft comment:
    The function argSigToJsonSchemaType is quite large and deeply nested. Consider refactoring it into smaller helper functions to improve readability and maintainability.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
18. cli/metadata.ts:891
  • Draft comment:
    When generating new metadata and lock files in parseMetadataFile, consider adding more inline comments that describe the expected file format and lockfile structure. This will make maintenance easier for future developers.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
19. cli/gen/types.gen.ts:5604
  • Draft comment:
    Typographical Error: In multiple comments (e.g. around line 5604), the word 'whove' is used where 'whose' is intended. Please correct these instances.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
20. cli/gen/types.gen.ts:1810
  • Draft comment:
    Typographical Error: The phrase 'non non started job' appears in parameter comments; consider changing it to 'non-started job' for clarity.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
21. cli/gen/types.gen.ts:4925
  • Draft comment:
    Typographical Error: In the comment describing job scheduling, 'waitinf' should be corrected to 'waiting'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
22. cli/metadata.ts:483
  • Draft comment:
    Typographical error: Consider renaming 'inferedSchema' to 'inferredSchema' for clarity and consistency throughout the function.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
23. cli/metadata.ts:611
  • Draft comment:
    Typographical error in comment: 'copied straight fron frontend /src/utils/inferArgs.ts' should be corrected to 'copied straight from frontend /src/utils/inferArgs.ts'.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_Qb6N98lOCq1f9xqh


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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