uipath 2.0.21__tar.gz → 2.0.23__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of uipath might be problematic. Click here for more details.

Files changed (129) hide show
  1. uipath-2.0.23/.github/workflows/publish-dev.yml +109 -0
  2. {uipath-2.0.21 → uipath-2.0.23}/PKG-INFO +1 -1
  3. {uipath-2.0.21 → uipath-2.0.23}/pyproject.toml +4 -1
  4. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/__init__.py +10 -1
  5. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_invoke.py +2 -3
  6. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_publish.py +55 -18
  7. {uipath-2.0.21 → uipath-2.0.23}/uv.lock +1 -1
  8. {uipath-2.0.21 → uipath-2.0.23}/.cursorrules +0 -0
  9. {uipath-2.0.21 → uipath-2.0.23}/.editorconfig +0 -0
  10. {uipath-2.0.21 → uipath-2.0.23}/.gitattributes +0 -0
  11. {uipath-2.0.21 → uipath-2.0.23}/.github/workflows/build.yml +0 -0
  12. {uipath-2.0.21 → uipath-2.0.23}/.github/workflows/cd.yml +0 -0
  13. {uipath-2.0.21 → uipath-2.0.23}/.github/workflows/ci.yml +0 -0
  14. {uipath-2.0.21 → uipath-2.0.23}/.github/workflows/commitlint.yml +0 -0
  15. {uipath-2.0.21 → uipath-2.0.23}/.github/workflows/lint.yml +0 -0
  16. {uipath-2.0.21 → uipath-2.0.23}/.github/workflows/test.yml +0 -0
  17. {uipath-2.0.21 → uipath-2.0.23}/.gitignore +0 -0
  18. {uipath-2.0.21 → uipath-2.0.23}/.pre-commit-config.yaml +0 -0
  19. {uipath-2.0.21 → uipath-2.0.23}/.python-version +0 -0
  20. {uipath-2.0.21 → uipath-2.0.23}/.vscode/extensions.json +0 -0
  21. {uipath-2.0.21 → uipath-2.0.23}/.vscode/settings.json +0 -0
  22. {uipath-2.0.21 → uipath-2.0.23}/CONTRIBUTING.md +0 -0
  23. {uipath-2.0.21 → uipath-2.0.23}/LICENSE +0 -0
  24. {uipath-2.0.21 → uipath-2.0.23}/README.md +0 -0
  25. {uipath-2.0.21 → uipath-2.0.23}/docs/CONTRIBUTING.md +0 -0
  26. {uipath-2.0.21 → uipath-2.0.23}/docs/actions.md +0 -0
  27. {uipath-2.0.21 → uipath-2.0.23}/docs/assets/uipath-logo.svg +0 -0
  28. {uipath-2.0.21 → uipath-2.0.23}/docs/assets.md +0 -0
  29. {uipath-2.0.21 → uipath-2.0.23}/docs/buckets.md +0 -0
  30. {uipath-2.0.21 → uipath-2.0.23}/docs/connections.md +0 -0
  31. {uipath-2.0.21 → uipath-2.0.23}/docs/context_grounding.md +0 -0
  32. {uipath-2.0.21 → uipath-2.0.23}/docs/getting_started_agent.md +0 -0
  33. {uipath-2.0.21 → uipath-2.0.23}/docs/getting_started_cli.md +0 -0
  34. {uipath-2.0.21 → uipath-2.0.23}/docs/getting_started_sdk.md +0 -0
  35. {uipath-2.0.21 → uipath-2.0.23}/docs/index.md +0 -0
  36. {uipath-2.0.21 → uipath-2.0.23}/docs/jobs.md +0 -0
  37. {uipath-2.0.21 → uipath-2.0.23}/docs/processes.md +0 -0
  38. {uipath-2.0.21 → uipath-2.0.23}/docs/queues.md +0 -0
  39. {uipath-2.0.21 → uipath-2.0.23}/docs/sdk.md +0 -0
  40. {uipath-2.0.21 → uipath-2.0.23}/justfile +0 -0
  41. {uipath-2.0.21 → uipath-2.0.23}/mkdocs.yml +0 -0
  42. {uipath-2.0.21 → uipath-2.0.23}/py.typed +0 -0
  43. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/__init__.py +0 -0
  44. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/README.md +0 -0
  45. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  46. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/_models.py +0 -0
  47. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  48. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  49. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/_utils.py +0 -0
  50. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/auth_config.json +0 -0
  51. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/index.html +0 -0
  52. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/localhost.crt +0 -0
  53. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_auth/localhost.key +0 -0
  54. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_runtime/_contracts.py +0 -0
  55. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_runtime/_logging.py +0 -0
  56. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  57. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  58. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_templates/.rels.template +0 -0
  59. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  60. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_templates/main.py.template +0 -0
  61. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  62. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_utils/_common.py +0 -0
  63. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_utils/_folders.py +0 -0
  64. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_utils/_input_args.py +0 -0
  65. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  66. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/_utils/_processes.py +0 -0
  67. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_auth.py +0 -0
  68. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_deploy.py +0 -0
  69. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_init.py +0 -0
  70. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_new.py +0 -0
  71. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_pack.py +0 -0
  72. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/cli_run.py +0 -0
  73. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/middlewares.py +0 -0
  74. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_cli/spinner.py +0 -0
  75. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_config.py +0 -0
  76. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_execution_context.py +0 -0
  77. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_folder_context.py +0 -0
  78. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/__init__.py +0 -0
  79. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/_base_service.py +0 -0
  80. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/actions_service.py +0 -0
  81. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/api_client.py +0 -0
  82. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/assets_service.py +0 -0
  83. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/buckets_service.py +0 -0
  84. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/connections_service.py +0 -0
  85. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/connections_service.pyi +0 -0
  86. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/context_grounding_service.py +0 -0
  87. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/folder_service.py +0 -0
  88. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/jobs_service.py +0 -0
  89. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/llm_gateway_service.py +0 -0
  90. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/processes_service.py +0 -0
  91. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_services/queues_service.py +0 -0
  92. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_uipath.py +0 -0
  93. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/__init__.py +0 -0
  94. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/_endpoint.py +0 -0
  95. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/_infer_bindings.py +0 -0
  96. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/_logs.py +0 -0
  97. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/_request_override.py +0 -0
  98. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/_request_spec.py +0 -0
  99. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/_user_agent.py +0 -0
  100. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/_utils/constants.py +0 -0
  101. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/__init__.py +0 -0
  102. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/action_schema.py +0 -0
  103. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/actions.py +0 -0
  104. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/assets.py +0 -0
  105. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/connections.py +0 -0
  106. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/context_grounding.py +0 -0
  107. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/context_grounding_index.py +0 -0
  108. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/exceptions.py +0 -0
  109. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/interrupt_models.py +0 -0
  110. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/job.py +0 -0
  111. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/llm_gateway.py +0 -0
  112. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/processes.py +0 -0
  113. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/models/queues.py +0 -0
  114. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/py.typed +0 -0
  115. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/tracing/__init__.py +0 -0
  116. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/tracing/_otel_exporters.py +0 -0
  117. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/tracing/_traced.py +0 -0
  118. {uipath-2.0.21 → uipath-2.0.23}/src/uipath/tracing/_utils.py +0 -0
  119. {uipath-2.0.21 → uipath-2.0.23}/tests/__init__.py +0 -0
  120. {uipath-2.0.21 → uipath-2.0.23}/tests/cli/test_init.py +0 -0
  121. {uipath-2.0.21 → uipath-2.0.23}/tests/conftest.py +0 -0
  122. {uipath-2.0.21 → uipath-2.0.23}/tests/sdk/services/test_llm_integration.py +0 -0
  123. {uipath-2.0.21 → uipath-2.0.23}/tests/sdk/services/test_llm_service.py +0 -0
  124. {uipath-2.0.21 → uipath-2.0.23}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  125. {uipath-2.0.21 → uipath-2.0.23}/tests/sdk/test_config.py +0 -0
  126. {uipath-2.0.21 → uipath-2.0.23}/tests/tracing/test_otel_exporters.py +0 -0
  127. {uipath-2.0.21 → uipath-2.0.23}/tests/tracing/test_span_utils.py +0 -0
  128. {uipath-2.0.21 → uipath-2.0.23}/tests/tracing/test_traced.py +0 -0
  129. {uipath-2.0.21 → uipath-2.0.23}/tests/tracing/test_tracing_manager.py +0 -0
@@ -0,0 +1,109 @@
1
+ name: Publish Dev Build
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened, labeled]
6
+ secrets:
7
+ PYPI_TOKEN:
8
+ required: true
9
+ TESTPYPI_TOKEN:
10
+ required: true
11
+
12
+
13
+ jobs:
14
+ publish-dev:
15
+ runs-on: ubuntu-latest
16
+
17
+ # Only run if PR has the build:dev label
18
+ if: contains(github.event.pull_request.labels.*.name, 'build:dev')
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - uses: astral-sh/setup-uv@v5
24
+
25
+ - uses: actions/setup-python@v5
26
+ with:
27
+ python-version-file: ".python-version"
28
+
29
+ - name: Setup venv
30
+ run: |
31
+ uv venv
32
+ uv sync --all-extras
33
+
34
+ - name: Set development version
35
+ shell: pwsh
36
+ env:
37
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
+ run: |
39
+ $pyprojcontent = Get-Content pyproject.toml -Raw
40
+
41
+ $PROJECT_NAME = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?name\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
42
+ $CURRENT_VERSION = ($pyprojcontent | Select-String -Pattern '(?m)^\[(project|tool\.poetry)\][^\[]*?version\s*=\s*"([^"]*)"' -AllMatches).Matches[0].Groups[2].Value
43
+ $NIGHTLY_NAME = "$PROJECT_NAME-nightly"
44
+
45
+
46
+ # Get PR number and run number with proper padding
47
+ $PR_NUM = [int]"${{ github.event.pull_request.number }}"
48
+ $PADDED_PR = "{0:D5}" -f [int]"${{ github.event.pull_request.number }}"
49
+ $PADDED_RUN = "{0:D4}" -f [int]"${{ github.run_number }}"
50
+ $PADDED_NEXT_PR = "{0:D5}" -f ($PR_NUM + 1)
51
+
52
+ # Create version range strings for PR
53
+ $MIN_VERSION = "$CURRENT_VERSION.dev1$PADDED_PR" + "0000"
54
+ $MAX_VERSION = "$CURRENT_VERSION.dev1$PADDED_NEXT_PR" + "0000"
55
+
56
+ # Create unique dev version with PR number and run ID
57
+ $DEV_VERSION = "$CURRENT_VERSION.dev1$PADDED_PR$PADDED_RUN"
58
+
59
+ # Update version in pyproject.toml
60
+ (Get-Content pyproject.toml) -replace "version = `"$CURRENT_VERSION`"", "version = `"$DEV_VERSION`"" | Set-Content pyproject.toml
61
+
62
+ # Update project name in pyproject.toml
63
+ (Get-Content pyproject.toml) -replace "name = `"$PROJECT_NAME`"", "name = `"$NIGHTLY_NAME`"" | Set-Content pyproject.toml
64
+
65
+
66
+ Write-Output "Package version set to $DEV_VERSION"
67
+
68
+ $dependencyMessage = @"
69
+ - Add this package as a dependency in your pyproject.toml:
70
+
71
+ ``````toml
72
+ [project]
73
+ dependencies = [
74
+ # Exact version:
75
+ "$NIGHTLY_NAME==$DEV_VERSION",
76
+
77
+ # Any version from PR
78
+ "$NIGHTLY_NAME>=$MIN_VERSION,<$MAX_VERSION"
79
+ ]
80
+ ``````
81
+ "@
82
+ Write-Output $dependencyMessage
83
+
84
+ # Post comment to GitHub PR
85
+ $owner = "${{ github.repository_owner }}"
86
+ $repo = "${{ github.repository }}".Split('/')[1]
87
+ $issueNumber = $PR_NUM
88
+
89
+ $body = @{
90
+ body = $dependencyMessage
91
+ } | ConvertTo-Json
92
+
93
+ # Create the comment using GitHub REST API
94
+ $uri = "https://api.github.com/repos/$owner/$repo/issues/$issueNumber/comments"
95
+ $headers = @{
96
+ Authorization = "token $env:GITHUB_TOKEN"
97
+ Accept = "application/vnd.github.v3+json"
98
+ }
99
+
100
+ Invoke-RestMethod -Uri $uri -Method Post -Body $body -Headers $headers -ContentType "application/json"
101
+
102
+ - name: Build package
103
+ run: uv build
104
+
105
+ - name: Publish
106
+ run: |
107
+ uv publish
108
+ env:
109
+ UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.0.21
3
+ Version: 2.0.23
4
4
  Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
5
5
  Project-URL: Homepage, https://uipath.com
6
6
  Project-URL: Repository, https://github.com/UiPath/uipath-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath"
3
- version = "2.0.21"
3
+ version = "2.0.23"
4
4
  description = "Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools."
5
5
  readme = { file = "README.md", content-type = "text/markdown" }
6
6
  requires-python = ">=3.10"
@@ -61,6 +61,9 @@ dev = [
61
61
  [project.optional-dependencies]
62
62
  langchain = ["uipath-langchain>=0.0.88,<0.1.0"]
63
63
 
64
+ [tool.hatch.build.targets.wheel]
65
+ packages = ["src/uipath"]
66
+
64
67
  [tool.ruff]
65
68
  line-length = 88
66
69
  indent-width = 4
@@ -13,9 +13,18 @@ from .cli_publish import publish as publish # type: ignore
13
13
  from .cli_run import run as run # type: ignore
14
14
 
15
15
 
16
+ def _get_safe_version() -> str:
17
+ """Get the version of the uipath package."""
18
+ try:
19
+ version = importlib.metadata.version("uipath")
20
+ return version
21
+ except importlib.metadata.PackageNotFoundError:
22
+ return "unknown"
23
+
24
+
16
25
  @click.group(invoke_without_command=True)
17
26
  @click.version_option(
18
- importlib.metadata.version("uipath"),
27
+ _get_safe_version(),
19
28
  prog_name="uipath",
20
29
  message="%(prog)s version %(version)s",
21
30
  )
@@ -86,15 +86,14 @@ def invoke(entrypoint: Optional[str], input: Optional[str]) -> None:
86
86
  click.Abort()
87
87
  if job_key:
88
88
  job_url = f"{base_url}/orchestrator_/jobs(sidepanel:sidepanel/jobs/{job_key}/details)?fid={personal_workspace_folder_id}"
89
- click.echo("\n✨ Job started successfully!")
89
+ click.echo("✨ Job started successfully!")
90
90
  click.echo(
91
- "\n🔗 Monitor your job here: "
91
+ "🔗 Monitor your job here: "
92
92
  + click.style(
93
93
  f"\u001b]8;;{job_url}\u001b\\{job_url}\u001b]8;;\u001b\\",
94
94
  fg="bright_blue",
95
95
  bold=True,
96
96
  )
97
- + "\n"
98
97
  )
99
98
  else:
100
99
  click.echo(f"\n❌ Error starting job: {response.text}")
@@ -30,6 +30,31 @@ def get_most_recent_package():
30
30
  return nupkg_files_with_time[0][0]
31
31
 
32
32
 
33
+ def get_available_feeds(
34
+ base_url: str, headers: dict[str, str]
35
+ ) -> list[tuple[str, str]]:
36
+ url = f"{base_url}/orchestrator_/api/PackageFeeds/GetFeeds"
37
+ response = requests.get(url, headers=headers)
38
+ if response.status_code != 200:
39
+ click.echo(
40
+ f"❌ Failed to fetch available feeds. Status code: {response.status_code}"
41
+ )
42
+ if response.text:
43
+ click.echo(response.text)
44
+ click.get_current_context().exit(1)
45
+ try:
46
+ available_feeds = [
47
+ feed for feed in response.json() if feed["purpose"] == "Processes"
48
+ ]
49
+ return [(feed["name"], feed["id"]) for feed in available_feeds]
50
+ except Exception as e:
51
+ click.echo(
52
+ "❌ Failed to deserialize available feeds.",
53
+ )
54
+ click.echo(e)
55
+ click.get_current_context().exit(1)
56
+
57
+
33
58
  @click.command()
34
59
  @click.option(
35
60
  "--tenant",
@@ -39,8 +64,8 @@ def get_most_recent_package():
39
64
  help="Whether to publish to the tenant package feed",
40
65
  )
41
66
  @click.option(
42
- "--personal-workspace",
43
- "-p",
67
+ "--my-workspace",
68
+ "-w",
44
69
  "feed",
45
70
  flag_value="personal",
46
71
  help="Whether to publish to the personal workspace",
@@ -49,13 +74,25 @@ def publish(feed):
49
74
  spinner = Spinner()
50
75
  current_path = os.getcwd()
51
76
  load_dotenv(os.path.join(current_path, ".env"), override=True)
77
+ [base_url, token] = get_env_vars()
78
+ headers = {"Authorization": f"Bearer {token}"}
52
79
  if feed is None:
53
- click.echo("Select feed type:")
54
- click.echo(" 0: Tenant package feed")
55
- click.echo(" 1: Personal workspace")
80
+ available_feeds = get_available_feeds(base_url, headers)
81
+ click.echo("👇 Select package feed:")
82
+ for idx, feed in enumerate(available_feeds, start=0):
83
+ click.echo(f" {idx}: {feed[0]}")
56
84
  feed_idx = click.prompt("Select feed", type=int)
57
- feed = "tenant" if feed_idx == 0 else "personal"
58
- click.echo(f"Selected feed: {feed}")
85
+ if feed_idx < 0:
86
+ click.echo(" Invalid input")
87
+ click.get_current_context().exit(1)
88
+ try:
89
+ selected_feed = available_feeds[feed_idx]
90
+ feed = selected_feed[1]
91
+ except IndexError:
92
+ click.echo("❌ Invalid feed selected")
93
+ click.get_current_context().exit(1)
94
+
95
+ click.echo(f"Selected feed: {click.style(str(selected_feed[0]), fg='cyan')}")
59
96
 
60
97
  os.makedirs(".uipath", exist_ok=True)
61
98
 
@@ -71,19 +108,19 @@ def publish(feed):
71
108
 
72
109
  package_to_publish_path = os.path.join(".uipath", most_recent)
73
110
 
74
- [base_url, token] = get_env_vars(spinner)
75
-
76
111
  url = f"{base_url}/orchestrator_/odata/Processes/UiPath.Server.Configuration.OData.UploadPackage()"
112
+ is_personal_workspace = False
77
113
 
78
- if feed == "personal":
79
- # Get current user extended info to get personal workspace ID
114
+ if feed and feed != "tenant":
115
+ # Check user personal workspace
80
116
  personal_workspace_feed_id, personal_workspace_folder_id = (
81
117
  get_personal_workspace_info(base_url, token, spinner)
82
118
  )
83
-
84
- url = url + "?feedId=" + personal_workspace_feed_id
85
-
86
- headers = {"Authorization": f"Bearer {token}"}
119
+ if feed == "personal" or feed == personal_workspace_feed_id:
120
+ is_personal_workspace = True
121
+ url = url + "?feedId=" + personal_workspace_feed_id
122
+ else:
123
+ url = url + "?feedId=" + feed
87
124
 
88
125
  with open(package_to_publish_path, "rb") as f:
89
126
  files = {"file": (package_to_publish_path, f, "application/octet-stream")}
@@ -95,7 +132,7 @@ def publish(feed):
95
132
  click.echo(
96
133
  click.style("✓ ", fg="green", bold=True) + "Package published successfully!"
97
134
  )
98
- if feed == "personal":
135
+ if is_personal_workspace:
99
136
  try:
100
137
  data = json.loads(response.text)
101
138
  package_name = json.loads(data["value"][0]["Body"])["Id"]
@@ -108,7 +145,7 @@ def publish(feed):
108
145
  if release_id:
109
146
  process_url = f"{base_url}/orchestrator_/processes/{release_id}/edit?fid={personal_workspace_folder_id}"
110
147
  click.echo(
111
- "\n🔧 Configure your process: "
148
+ "🔧 Configure your process: "
112
149
  + click.style(
113
150
  f"\u001b]8;;{process_url}\u001b\\{process_url}\u001b]8;;\u001b\\",
114
151
  fg="bright_blue",
@@ -116,7 +153,7 @@ def publish(feed):
116
153
  )
117
154
  )
118
155
  click.echo(
119
- "\n💡 Use the link above to configure any environment variables\n"
156
+ "💡 Use the link above to configure any environment variables"
120
157
  )
121
158
  else:
122
159
  click.echo("⚠️ Warning: Failed to compose process url")
@@ -2393,7 +2393,7 @@ wheels = [
2393
2393
 
2394
2394
  [[package]]
2395
2395
  name = "uipath"
2396
- version = "2.0.21"
2396
+ version = "2.0.23"
2397
2397
  source = { editable = "." }
2398
2398
  dependencies = [
2399
2399
  { name = "click" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes