Skip to content

Conversation

dmpas
Copy link
Member

@dmpas dmpas commented Aug 15, 2025

PS C> c:\...\oscript.bat .\src\cmd\opm.os push --channel auto ..\InternetMail-1.0.6.ospx
{Модуль C:\U...m_Push.os / Ошибка в строке: 90 / Невозможно автоматически определить канал. Требуется явное указание в параметре --channel одного из значений: stable, dev}

Summary by CodeRabbit

  • Новые возможности

    • Улучшено сообщение об ошибке при невозможности автоопределения канала: теперь требуется явное указание параметра --channel с перечнем допустимых значений, который формируется и отображается динамически.
  • Исправления ошибок

    • Более корректная обработка случаев, когда репозиторий не является Git-репозиторием или текущая ветка не master: вместо общего сообщения выводится подробная подсказка с валидными каналами.

Copy link

coderabbitai bot commented Aug 15, 2025

Walkthrough

Обновлена логика автоопределения канала в КомандаOpm_Push: в двух сценариях добавлены более подробные сообщения об ошибках и перечисление допустимых значений канала. Инициализирована структура допустимых каналов и добавлена функция для генерации строкового списка этих значений.

Changes

Cohort / File(s) Summary
Обработка ошибок и валидация каналов
src/cmd/Классы/КомандаOpm_Push.os
Заменены сообщения об ошибках автоопределения канала (не Git-репозиторий, ветка не master) на подробные с перечислением допустимых значений; добавлена функция ДопустимыеИменаКаналовЗначения(); инициализирована структура ДопустимыеИменаКаналов с маппингом "Стабильный"→"stable", "Разработческий"→"dev".

Sequence Diagram(s)

sequenceDiagram
  participant U as Пользователь
  participant P as КомандаOpm_Push
  participant G as Git репозиторий

  U->>P: Выполнить opm push (без --channel)
  P->>G: Определить текущую ветку
  alt Не Git-репозиторий или ветка ≠ master
    P->>P: ДопустимыеИменаКаналовЗначения()
    P-->>U: Ошибка + список допустимых каналов
  else Условия выполнены
    P-->>U: Продолжение выполнения push
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~7 минут

Poem

Я пушу морковку в dev-канал — хоп-хоп!
В стабильный — только зрелый, без хлопот.
Git молчит? Скажу я честно: канал укажи!
Список шепчу усами: stable, dev — бери.
И дальше в ночь — релизный мягкий бег. 🥕✨

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ 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.
    • 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.
  • 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 the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

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

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • 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: 0

🧹 Nitpick comments (3)
src/cmd/Классы/КомандаOpm_Push.os (3)

84-86: Избавиться от дублирования текста ошибки (вынести в функцию)

Один и тот же текст ошибки повторяется в двух местах (здесь и на Линия 90–92). Предлагаю вынести шаблон ошибки в небольшую функцию, чтобы не дублировать конкатенацию строк и упростить будущие правки.

Пример замены в этом месте:

-			ВызватьИсключение "Невозможно автоматически определить канал. "
-				+ "Требуется явное указание в параметре --channel одного из значений: " + ДопустимыеИменаКаналовЗначения();
+			ВызватьИсключение ТекстОшибкаАвтоКанала();

Пример реализации функции приведен в комментарии к Линия 208–218.


90-92: Устранить дублирование и, по возможности, поддержать main как стандартную ветку

  • Как и выше, рекомендую заменить дублирующийся текст вызовом общей функции формирования сообщения.
  • Дополнительно (опционально): многие репозитории уже используют main вместо master. Если это приемлемо для проекта, можно допустить auto и для ветки main.
-			ВызватьИсключение "Невозможно автоматически определить канал. "
-				+ "Требуется явное указание в параметре --channel одного из значений: " + ДопустимыеИменаКаналовЗначения();
+			ВызватьИсключение ТекстОшибкаАвтоКанала();

Пример функции — см. комментарий к Линия 208–218.


208-218: Переименовать локальную переменную и выделить функцию для текста ошибки

  • Внутри функции имя локальной переменной совпадает с именем функции. Для читаемости лучше избежать такого совпадения и дать переменной более точное имя.
  • Рекомендую вынести шаблон текста ошибки автоопределения канала в отдельную функцию, чтобы не дублировать конкатенацию строк на Линия 84–86 и Линия 90–92 и централизовать формат.
-Функция ДопустимыеИменаКаналовЗначения()
-	
-	ДопустимыеИменаКаналовЗначения = Новый Массив;
-	Для Каждого ИмяКанала Из ДопустимыеИменаКаналов Цикл
-		ДопустимыеИменаКаналовЗначения.Добавить(ИмяКанала.Значение);
-	КонецЦикла;
-
-	Возврат СтрСоединить(ДопустимыеИменаКаналовЗначения, ", ");
-
-КонецФункции
+Функция ДопустимыеИменаКаналовЗначения()
+	
+	ЗначенияКаналов = Новый Массив;
+	Для Каждого ПараКлючЗначение Из ДопустимыеИменаКаналов Цикл
+		ЗначенияКаналов.Добавить(ПараКлючЗначение.Значение);
+	КонецЦикла;
+
+	Возврат СтрСоединить(ЗначенияКаналов, ", ");
+
+КонецФункции

Дополнительно (вставить рядом, вне рамок показанного диффа):

Функция ТекстОшибкаАвтоКанала()
	Возврат "Невозможно автоматически определить канал. "
		+ "Требуется явное указание в параметре --channel одного из значений: " 
		+ ДопустимыеИменаКаналовЗначения();
КонецФункции

Примечание: Аналогично можно переиспользовать ДопустимыеИменаКаналовЗначения() в ветке с текстом «Указано недопустимое имя канала…», если потребуется вывести значения в одну строку; либо оставить там многострочный формат — на ваше усмотрение.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 90d0eda and 4d73a7d.

📒 Files selected for processing (1)
  • src/cmd/Классы/КомандаOpm_Push.os (2 hunks)
🔇 Additional comments (2)
src/cmd/Классы/КомандаOpm_Push.os (2)

84-86: Более понятное сообщение об ошибке при auto вне git — хорошо

Текст стал информативнее и сразу подсказывает допустимые значения канала. Это улучшает UX.


90-92: Более понятное сообщение об ошибке при auto в не-master ветке — хорошо

Консистентно с предыдущим случаем, сразу показывает допустимые значения.

@nixel2007 nixel2007 merged commit 46dbd0f into oscript-library:master Aug 16, 2025
1 of 10 checks passed
@nixel2007
Copy link
Member

Спасибо!

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