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: upgrade cobalt v7->v10 #26

Merged
merged 3 commits into from
Nov 5, 2024
Merged

Conversation

ThaddeusJiang
Copy link
Owner

@ThaddeusJiang ThaddeusJiang commented Nov 5, 2024

Issues

  • the cobalt v7 api is shutting down on nov 11th 2024. see here for more information.

  • feat: 🎸 upgrade cobalt from v7 to v10

  • refactor: 💡 move dir

Summary by CodeRabbit

Release Notes

  • New Features

    • Introduced a new environment variable COBALT_API_URL for improved application setup.
    • Added a new service cobalt-api in the Docker configuration.
  • Documentation

    • Enhanced clarity in the README file, including updated setup instructions and simplified API links.
    • Updated the Zeabur documentation to reflect changes in service and template links.
  • Bug Fixes

    • Updated port mappings and health check URLs for the typesense service to ensure proper functionality.
  • Refactor

    • Replaced the CobaltClient alias with Cobalt for improved consistency in download URL handling.
    • Updated import statements for URL validation across various modules to reflect new module structure.
    • Streamlined the template.yaml file for better resource management.

Copy link

coderabbitai bot commented Nov 5, 2024

Walkthrough

The pull request introduces several significant changes across multiple files, primarily focusing on enhancing documentation, modifying configuration settings, and updating module functionalities. Key updates include the addition of the COBALT_API_URL environment variable in README.md, the introduction of a new cobalt-api service in docker-compose.yml, and the replacement of the CobaltClient alias with Cobalt in the SaveIt.Bot module. Additionally, the SaveIt.CobaltClient module has been removed, and various import statements have been updated to reflect new module paths.

Changes

File Change Summary
README.md Added COBALT_API_URL environment variable; simplified Cobalt API link; retained usage instructions.
config/runtime.exs Added :cobalt_api_url configuration; updated :typesense_url default from 8100 to 8101.
docker-compose.yml Added cobalt-api service; updated typesense service port from 8100:8108 to 8101:8108.
lib/save_it/bot.ex Replaced CobaltClient alias with Cobalt; updated download URL handling in handle/3 function.
lib/save_it/cobalt_client.ex Removed the SaveIt.CobaltClient module and its get_download_url/1 function.
lib/save_it/migration/typesense.ex Updated import for validate_url! from Tj.UrlHelper to SaveIt.SmallHelper.UrlHelper.
lib/save_it/photo_service.ex Updated import for validate_url! from Tj.UrlHelper to SaveIt.SmallHelper.UrlHelper.
lib/save_it/small_helper/url_helper.ex Renamed module from Tj.UrlHelper to SaveIt.SmallHelper.UrlHelper.
lib/small_sdk/cobalt.ex Introduced SmallSdk.Cobalt module with methods for interacting with the Cobalt API.
lib/small_sdk/typesense.ex Updated import for validate_url! from Tj.UrlHelper to SaveIt.SmallHelper.UrlHelper.
zeabur/readme.md Updated title, added links to zeabur template and GitHub repo, modified command example.
zeabur/template.yaml Updated resource links, added COBALT_API_URL environment variable, and introduced new cobalt-api service.

Possibly related PRs

  • feat: search photos #12: The changes in this PR enhance the bot's capabilities to search for photos, which is directly related to the modifications in the main PR that improve the documentation for the bot's features, including saving and searching photos.
  • feat: update photo's caption #24: This PR focuses on updating photo captions and refining the document deletion process in the Typesense SDK, which relates to the overall functionality of managing photos as described in the main PR's updates to the documentation.

🐰 In the meadow, where bunnies play,
New paths emerge, brightening the way.
With COBALT_API_URL set just right,
Our bot hops forth, ready to delight!
Services added, and imports refined,
A joyful leap for all, intertwined! 🌼


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

@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 (7)
docker-compose.yml (1)

2-12: Security configuration looks good, but some improvements needed.

The new cobalt-api service has good security practices with read_only: true, but consider these enhancements:

  1. Add resource limits to prevent container from consuming excessive resources
  2. Add a health check similar to typesense service
  3. Consider making API_URL configurable via environment variable
   cobalt-api:
     image: ghcr.io/imputnet/cobalt:10
     init: true
     read_only: true
     restart: unless-stopped
+    deploy:
+      resources:
+        limits:
+          memory: 1G
+        reservations:
+          memory: 512M
+    healthcheck:
+      test: ["CMD", "curl", "-f", "http://localhost:9000/health"]
+      interval: 30s
+      timeout: 10s
+      retries: 5
     ports:
       - 9001:9000/tcp
     environment:
-      API_URL: "http://localhost:9001/"
+      API_URL: "${COBALT_API_URL:-http://localhost:9001/}"
lib/save_it/migration/typesense.ex (1)

1-1: Add module documentation.

Consider adding @moduledoc documentation to explain this module's purpose and its role in Typesense migrations. This would help other developers understand when and how to use this module.

 defmodule SaveIt.Migration.Typesense do
+  @moduledoc """
+  Provides functions for managing Typesense collections through migrations.
+  This module handles the creation, updating, listing, and deletion of Typesense collections
+  using the configured Typesense API endpoint.
+  """
+
   alias SmallSdk.Typesense
lib/save_it/photo_service.ex (1)

5-5: Consider documenting URL validation requirements.

Since URL validation is critical for configuration, consider adding a module doc or @doc string specifying the URL format requirements and validation rules.

Example addition:

+  @moduledoc """
+  Handles photo-related operations including creation, updates, and searches.
+  
+  ## URL Validation
+  The module expects URLs to follow these requirements:
+  - Must be absolute URLs
+  - Must use HTTP/HTTPS protocol
+  - ...
+  """
lib/save_it/bot.ex (1)

Line range hint 229-248: Document the Cobalt v10 integration changes

The code changes indicate significant updates in how URLs are handled (e.g., introduction of purge_url). Please update the module documentation to:

  1. Explain the new URL handling mechanism
  2. Document any breaking changes from v7
  3. Add examples of successful and error responses
lib/small_sdk/cobalt.ex (3)

14-28: Ensure consistent return values from get_download_url/1

The function returns different tuple formats based on the response:

  • {:ok, download_url} when a single URL is available.
  • {:ok, url, urls_list} when multiple URLs are available (picker).

This inconsistency can lead to errors in consuming functions expecting a uniform return type. Consider standardizing the return format or clearly documenting the possible return types.


31-35: Simplify get_env/0 return value

get_env/0 returns {api_url} as a tuple containing a single value. Since only one value is needed, you can simplify the function by returning api_url directly without wrapping it in a tuple.

Apply this diff to simplify:

 defp get_env() do
-    api_url = Application.fetch_env!(:save_it, :cobalt_api_url) |> validate_url!()
-
-    {api_url}
+    Application.fetch_env!(:save_it, :cobalt_api_url) |> validate_url!()
 end

Update the build_request/1 function accordingly:

 defp build_request(path) do
-    {api_url} = get_env()
+    api_url = get_env()

83-86: Include error reason in exception message

The exception raised in handle_response({:error, reason}) uses a generic message "Request failed". Including the actual reason provides more context for debugging.

Apply this diff to include the error reason:

 def handle_response({:error, reason}) do
     Logger.error("Request failed: #{inspect(reason)}")
-    raise "Request failed"
+    raise "Request failed: #{inspect(reason)}"
 end
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 4e86a66 and 6379d13.

📒 Files selected for processing (10)
  • README.md (2 hunks)
  • config/runtime.exs (1 hunks)
  • docker-compose.yml (1 hunks)
  • lib/save_it/bot.ex (3 hunks)
  • lib/save_it/cobalt_client.ex (0 hunks)
  • lib/save_it/migration/typesense.ex (1 hunks)
  • lib/save_it/photo_service.ex (1 hunks)
  • lib/save_it/small_helper/url_helper.ex (1 hunks)
  • lib/small_sdk/cobalt.ex (1 hunks)
  • lib/small_sdk/typesense.ex (1 hunks)
💤 Files with no reviewable changes (1)
  • lib/save_it/cobalt_client.ex
✅ Files skipped from review due to trivial changes (1)
  • lib/save_it/small_helper/url_helper.ex
🔇 Additional comments (10)
config/runtime.exs (2)

6-7: LGTM: Cobalt API configuration looks good!

The configuration follows Elixir's standard pattern and properly supports environment variable override with a sensible default that matches the docker-compose service.


8-8: Verify the impact of Typesense port change.

The default Typesense port has been changed from 8100 to 8101. This change could affect existing deployments if they rely on the default port.

Let's check if this change is documented:

✅ Verification successful

Let me gather more information about Typesense configuration and usage in the codebase.


Port change is aligned with Docker configuration and appears safe

The port change in config/runtime.exs to 8101 is actually consistent with the Docker configuration where Typesense service is exposed on port 8101. The docker-compose file maps container's internal port 8108 to host port 8101 ("8101:8108"), and the healthcheck is also configured to use port 8101. There's no evidence of the old port 8100 being used anywhere in the codebase, suggesting this might be a correction rather than a breaking change.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if port change is documented in README or changelog

# Look for any mentions of the port change
rg -i "8100|8101|typesense.*port" README.md CHANGELOG.md 2>/dev/null || echo "No documentation found about port change"

# Check if there are any other files using the old port
rg "8100" --type yaml --type conf --type env 2>/dev/null || echo "No other files using old port found"

Length of output: 365


Script:

#!/bin/bash
# Search for Typesense related configuration and environment variables
rg -i "typesense" -A 3 -B 3 --type yaml --type conf --type env --type elixir

# Search for docker-compose files that might have Typesense service configuration
fd -e yml -e yaml docker-compose | xargs cat

# Look for deployment related files
fd -e deploy -e deployment | xargs cat 2>/dev/null

Length of output: 765

docker-compose.yml (1)

20-20: Verify impact of typesense port change.

The port change from 8100 to 8101 might affect existing deployments. Please ensure this change is documented and coordinated with other configuration updates.

Also applies to: 25-25

✅ Verification successful

Port change from 8100 to 8101 is properly coordinated across configurations

The port change is properly reflected in all necessary configurations:

  • The config/runtime.exs already uses the new port 8101 in the typesense_url configuration
  • The zeabur/template.yaml uses internal port 8108 which is unaffected
  • No other hardcoded references to the old port 8100 were found
  • The change in docker-compose.yml correctly updates both the port mapping and the healthcheck URL
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any hardcoded references to port 8100 that might need updating
rg "8100" --type yaml --type config --type-add 'config:*.{conf,config,ini,env}' -l

Length of output: 82


Script:

#!/bin/bash
# Let's try a broader search for port 8100/8101 across all files
rg -l "810[01]"

# Also search for typesense configuration patterns
rg -l -i "typesense.*port|port.*typesense"

# Check docker-compose history for context of the port change
git log -p docker-compose.yml | grep -A 5 -B 5 "810[01]"

Length of output: 1063


Script:

#!/bin/bash
# Let's check the content of the files that reference these ports
cat README.md
cat config/runtime.exs
cat zeabur/template.yaml

Length of output: 4048

README.md (1)

47-47: LGTM! Good choice using the repository root URL.

Using the main repository URL instead of a specific documentation path is more maintainable as documentation paths can change between versions.

lib/save_it/migration/typesense.ex (1)

4-4: Verify the URL validation implementation.

The import change looks good as it moves the utility into the project's namespace. However, let's verify that the new SaveIt.SmallHelper.UrlHelper.validate_url!/1 maintains the same validation logic as the old implementation.

✅ Verification successful

URL validation implementation has been verified successfully

The new implementation in SaveIt.SmallHelper.UrlHelper provides proper URL validation by:

  • Parsing the URL using URI.parse/1
  • Validating the scheme is either "http" or "https"
  • Ensuring the host is present
  • Raising an ArgumentError for invalid URLs

Additionally, no references to the old Tj.UrlHelper remain in the codebase, confirming a complete migration.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Compare the old and new URL validation implementations
# Expected: Both modules should exist and implement similar validation logic

# Check the new implementation
echo "Checking new implementation:"
rg -A 10 "validate_url!" "lib/save_it/small_helper/url_helper.ex"

# Check for any remaining references to the old implementation
echo "Checking for remaining old references:"
rg "Tj\.UrlHelper"

Length of output: 435

lib/save_it/photo_service.ex (1)

5-5: LGTM! Verify consistent URL validation across the codebase.

The namespace change from Tj.UrlHelper to SaveIt.SmallHelper.UrlHelper is a good organizational improvement.

Let's verify that all URL validation is consistently updated across the codebase:

✅ Verification successful

URL validation has been consistently updated across the codebase

The verification shows that:

  • No references to the old Tj.UrlHelper remain in the codebase
  • The new SaveIt.SmallHelper.UrlHelper is consistently imported with validate_url!/1 across all relevant modules:
    • lib/save_it/photo_service.ex
    • lib/small_sdk/cobalt.ex
    • lib/small_sdk/typesense.ex
    • lib/save_it/migration/typesense.ex
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any remaining references to the old URL helper
# and verify consistent usage of the new one

echo "Checking for any remaining references to Tj.UrlHelper..."
rg "Tj\.UrlHelper"

echo "Verifying consistent usage of SaveIt.SmallHelper.UrlHelper..."
rg "SaveIt\.SmallHelper\.UrlHelper"

Length of output: 766

lib/small_sdk/typesense.ex (2)

4-4: LGTM! Verify the new module path.

The import change looks good, moving from Tj.UrlHelper to SaveIt.SmallHelper.UrlHelper while maintaining the same functionality.

Let's verify the new module exists and maintains the same interface:

#!/bin/bash
# Description: Verify the new module exists and check its interface
# Test: Search for the new module definition
ast-grep --pattern 'defmodule SaveIt.SmallHelper.UrlHelper do
  $$$
  def validate_url!($_) do
    $$$
  end
  $$$
}'

4-4: Verify consistent import updates across the codebase.

Let's ensure all imports of the URL validation function have been updated consistently.

✅ Verification successful

All URL validation imports are consistent across the codebase

The verification shows that:

  • All imports consistently use SaveIt.SmallHelper.UrlHelper
  • The function is properly defined in lib/save_it/small_helper/url_helper.ex
  • All 4 files importing the function use the same import syntax: import SaveIt.SmallHelper.UrlHelper, only: [validate_url!: 1]
  • No old or inconsistent imports were found
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any remaining old imports and verify new imports
echo "Checking for any remaining old imports..."
rg "import Tj.UrlHelper"

echo "Verifying new imports are consistent..."
rg "import SaveIt.SmallHelper.UrlHelper"

Length of output: 214


Script:

#!/bin/bash
# Search for any imports containing UrlHelper and validate_url
rg "import.*UrlHelper.*validate_url"

# Search for usages of validate_url! function
rg "validate_url!"

# Search for the module definition
rg "defmodule.*UrlHelper"

Length of output: 1409

lib/save_it/bot.ex (2)

11-11: LGTM: Clean alias update for Cobalt v10

The change from SaveIt.CobaltClient to SmallSdk.Cobalt aligns with the Cobalt v7 to v10 upgrade.


229-230: Verify error handling compatibility with Cobalt v10

The upgrade from v7 to v10 is a major version change. Please verify that the existing error handling is compatible with any changes in the error response structure of Cobalt v10.

README.md Show resolved Hide resolved
@ThaddeusJiang ThaddeusJiang self-assigned this Nov 5, 2024
@ThaddeusJiang ThaddeusJiang merged commit 38cdc28 into main Nov 5, 2024
1 check passed
@ThaddeusJiang ThaddeusJiang deleted the feat/upgrade_cobalt_api branch November 5, 2024 06:29
Copy link

@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 (3)
zeabur/readme.md (2)

1-4: Format URLs using proper markdown link syntax.

While the added links are valuable, they should follow markdown best practices.

Apply this formatting:

# SaveIt template on zeabur

-zeabur template: https://zeabur.com/templates/FTAONK
-github: https://github.com/ThaddeusJiang/save_it/
+- [Zeabur Template](https://zeabur.com/templates/FTAONK)
+- [GitHub Repository](https://github.com/ThaddeusJiang/save_it/)
🧰 Tools
🪛 Markdownlint

3-3: null
Bare URL used

(MD034, no-bare-urls)


4-4: null
Bare URL used

(MD034, no-bare-urls)


12-14: Remove spaces inside link text.

The link formatting can be improved by removing unnecessary spaces.

Apply this change:

-[zeabur docs | template ](https://zeabur.com/docs/template/template-in-code)
+[zeabur docs | template](https://zeabur.com/docs/template/template-in-code)
🧰 Tools
🪛 Markdownlint

14-14: null
Spaces inside link text

(MD039, no-space-in-links)

zeabur/template.yaml (1)

8-8: Consider hosting assets on a CDN instead of using raw GitHub URLs.

While the raw GitHub URLs work, they might not be ideal for production use due to:

  • Potential rate limiting from GitHub
  • Lack of CDN benefits (slower loading times)
  • Direct dependency on GitHub's availability

Consider hosting these assets on a dedicated CDN or image hosting service for better reliability and performance.

Also applies to: 14-14, 25-25, 29-29

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 6379d13 and 0f1cf87.

⛔ Files ignored due to path filters (1)
  • docs/assets/save_it_demo.gif is excluded by !**/*.gif
📒 Files selected for processing (2)
  • zeabur/readme.md (1 hunks)
  • zeabur/template.yaml (4 hunks)
🧰 Additional context used
🪛 Markdownlint
zeabur/readme.md

3-3: null
Bare URL used

(MD034, no-bare-urls)


4-4: null
Bare URL used

(MD034, no-bare-urls)


14-14: null
Spaces inside link text

(MD039, no-space-in-links)

🔇 Additional comments (2)
zeabur/readme.md (1)

6-9: LGTM!

The development instructions are clear and properly formatted with the updated template filename.

zeabur/template.yaml (1)

41-43: LGTM: Environment variable configuration is correct.

The COBALT_API_URL is properly configured to point to the internal cobalt-api service with the correct port and exposure settings.

Comment on lines +84 to +98
- name: cobalt-api
icon: https://github.com/imputnet/cobalt/raw/main/web/static/favicon.png
template: PREBUILT_V2
spec:
source:
image: ghcr.io/imputnet/cobalt:10
ports:
- id: api
port: 9000
type: TCP
env:
API_URL:
default: undefined
expose: false

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Several improvements needed for the cobalt-api service configuration.

  1. The API_URL environment variable has an invalid default value of "undefined".
  2. Missing important production configurations:
    • Resource limits (CPU/memory)
    • Health checks
    • Security configurations (read-only filesystem, non-root user)

Here's the suggested improvement:

    - name: cobalt-api
      icon: https://github.com/imputnet/cobalt/raw/main/web/static/favicon.png
      template: PREBUILT_V2
      spec:
        source:
          image: ghcr.io/imputnet/cobalt:10
        ports:
          - id: api
            port: 9000
            type: TCP
+        resources:
+          limits:
+            cpu: "1"
+            memory: "1Gi"
+          requests:
+            cpu: "200m"
+            memory: "256Mi"
+        healthCheck:
+          httpGet:
+            path: /health
+            port: 9000
+          initialDelaySeconds: 10
+          periodSeconds: 30
+        securityContext:
+          readOnlyRootFilesystem: true
+          runAsNonRoot: true
+          runAsUser: 1000
        env:
          API_URL:
-            default: undefined
+            default: http://0.0.0.0:9000
            expose: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: cobalt-api
icon: https://github.com/imputnet/cobalt/raw/main/web/static/favicon.png
template: PREBUILT_V2
spec:
source:
image: ghcr.io/imputnet/cobalt:10
ports:
- id: api
port: 9000
type: TCP
env:
API_URL:
default: undefined
expose: false
- name: cobalt-api
icon: https://github.com/imputnet/cobalt/raw/main/web/static/favicon.png
template: PREBUILT_V2
spec:
source:
image: ghcr.io/imputnet/cobalt:10
ports:
- id: api
port: 9000
type: TCP
resources:
limits:
cpu: "1"
memory: "1Gi"
requests:
cpu: "200m"
memory: "256Mi"
healthCheck:
httpGet:
path: /health
port: 9000
initialDelaySeconds: 10
periodSeconds: 30
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
env:
API_URL:
default: http://0.0.0.0:9000
expose: false

Repository owner deleted a comment from coderabbitai bot Nov 5, 2024
Repository owner deleted a comment from coderabbitai bot Nov 5, 2024
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.

1 participant