diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml
index a2c92df597..d73398046a 100644
--- a/.github/workflows/claude-code-review.yml
+++ b/.github/workflows/claude-code-review.yml
@@ -34,15 +34,13 @@ jobs:
- name: Run Claude Code Review
id: claude-review
- uses: anthropics/claude-code-action@beta
+ uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
+ prompt: |
+ REPO: ${{ github.repository }}
+ PR NUMBER: ${{ github.event.pull_request.number }}
- # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1)
- # model: "claude-opus-4-1-20250805"
-
- # Direct prompt for automated review (no @claude mention needed)
- direct_prompt: |
Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
@@ -50,30 +48,11 @@ jobs:
- Security concerns
- Test coverage
- Be constructive and helpful in your feedback.
+ Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
- # Optional: Use sticky comments to make Claude reuse the same comment on subsequent pushes to the same PR
- # use_sticky_comment: true
-
- # Optional: Customize review based on file types
- # direct_prompt: |
- # Review this PR focusing on:
- # - For TypeScript files: Type safety and proper interface usage
- # - For API endpoints: Security, input validation, and error handling
- # - For React components: Performance, accessibility, and best practices
- # - For tests: Coverage, edge cases, and test quality
-
- # Optional: Different prompts for different authors
- # direct_prompt: |
- # ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
- # 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' ||
- # 'Please provide a thorough code review focusing on our coding standards and best practices.' }}
-
- # Optional: Add specific tools for running tests or linting
- # allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)"
+ Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.
- # Optional: Skip review for certain conditions
- # if: |
- # !contains(github.event.pull_request.title, '[skip-review]') &&
- # !contains(github.event.pull_request.title, '[WIP]')
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
+ # or https://docs.claude.com/en/docs/claude-code/sdk#command-line for available options
+ claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml
index 9daf0e90e7..e93c95bffd 100644
--- a/.github/workflows/claude.yml
+++ b/.github/workflows/claude.yml
@@ -16,8 +16,6 @@ jobs:
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
- (github.event_name == 'issues' && github.event.action == 'labeled' && github.event.label.name == 'Claude') ||
- (github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'Claude') ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
@@ -36,30 +34,22 @@ jobs:
id: claude
uses: anthropics/claude-code-action@v1
with:
- anthropic_api_key: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
-
- # This is an optional setting that allows Claude to read CI results on PRs
+ - name: Run Claude Code
+ id: claude
+ uses: anthropics/claude-code-action@v1
+ with:
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
+ # This is an optional setting that allows Claude to read CI results on PRs
+ additional_permissions: |
+ actions: read
additional_permissions: |
actions: read
-
- # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1)
- # model: "claude-opus-4-1-20250805"
-
- # Optional: Customize the trigger phrase (default: @claude)
- # trigger_phrase: "/claude"
-
- # Optional: Trigger when specific user is assigned to an issue
- # assignee_trigger: "claude-bot"
-
- # Optional: Allow Claude to run specific commands
- # allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"
-
- # Optional: Add custom instructions for Claude to customize its behavior for your project
- # custom_instructions: |
- # Follow our coding standards
- # Ensure all new code has tests
- # Use TypeScript for new files
-
- # Optional: Custom environment variables for Claude
- # claude_env: |
- # NODE_ENV: test
+
+ # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
+ # prompt: 'Update the pull request description to include a summary of changes.'
+
+ # Optional: Add claude_args to customize behavior and configuration
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
+ # or https://docs.claude.com/en/docs/claude-code/sdk#command-line for available options
+ # claude_args: '--model claude-opus-4-1-20250805 --allowed-tools Bash(gh pr:*)'
+
diff --git a/lang/ru.json b/lang/ru.json
new file mode 100644
index 0000000000..40300d582f
--- /dev/null
+++ b/lang/ru.json
@@ -0,0 +1,45 @@
+{
+ "auth.login": "Войти",
+ "auth.login.authentik": "Войти через Authentik",
+ "auth.login.azure": "Войти через Microsoft",
+ "auth.login.bitbucket": "Войти через Bitbucket",
+ "auth.login.clerk": "Войти через Clerk",
+ "auth.login.discord": "Войти через Discord",
+ "auth.login.github": "Войти через GitHub",
+ "auth.login.gitlab": "Войти через GitLab",
+ "auth.login.google": "Войти через Google",
+ "auth.login.infomaniak": "Войти через Infomaniak",
+ "auth.login.zitadel": "Войти через Zitadel",
+ "auth.already_registered": "Уже зарегистрированы?",
+ "auth.confirm_password": "Подтвердите пароль",
+ "auth.forgot_password_link": "Забыли пароль?",
+ "auth.forgot_password_heading": "Восстановление пароля",
+ "auth.forgot_password_send_email": "Отправить письмо для сброса пароля",
+ "auth.register_now": "Зарегистрироваться",
+ "auth.logout": "Выйти",
+ "auth.register": "Регистрация",
+ "auth.registration_disabled": "Регистрация отключена. Пожалуйста, свяжитесь с администратором.",
+ "auth.reset_password": "Сбросить пароль",
+ "auth.failed": "Эти учетные данные не соответствуют нашим записям.",
+ "auth.failed.callback": "Не удалось обработать ответ от провайдера входа.",
+ "auth.failed.password": "Указанный пароль неверен.",
+ "auth.failed.email": "Мы не можем найти пользователя с таким адресом электронной почты.",
+ "auth.throttle": "Слишком много попыток входа. Пожалуйста, попробуйте снова через :seconds секунд.",
+ "input.name": "Имя",
+ "input.email": "Email",
+ "input.password": "Пароль",
+ "input.password.again": "Повторите пароль",
+ "input.code": "Одноразовый код",
+ "input.recovery_code": "Код восстановления",
+ "button.save": "Сохранить",
+ "repository.url": "Примеры
Для публичных репозиториев используйте https://....
Для приватных репозиториев используйте git@....
https://github.com/coollabsio/coolify-examples будет выбрана ветка main
https://github.com/coollabsio/coolify-examples/tree/nodejs-fastify будет выбрана ветка nodejs-fastify.
https://gitea.com/sedlav/expressjs.git будет выбрана ветка main.
https://gitlab.com/andrasbacsai/nodejs-example.git будет выбрана ветка main.",
+ "service.stop": "Этот сервис будет остановлен.",
+ "resource.docker_cleanup": "Запустить очистку Docker (удалить неиспользуемые образы и кэш сборки).",
+ "resource.non_persistent": "Все непостоянные данные будут удалены.",
+ "resource.delete_volumes": "Безвозвратно удалить все тома, связанные с этим ресурсом.",
+ "resource.delete_connected_networks": "Безвозвратно удалить все непредопределенные сети, связанные с этим ресурсом.",
+ "resource.delete_configurations": "Безвозвратно удалить все файлы конфигурации с сервера.",
+ "database.delete_backups_locally": "Все резервные копии будут безвозвратно удалены из локального хранилища.",
+ "warning.sslipdomain": "Ваша конфигурация сохранена, но использование sslip домена с https НЕ рекомендуется, поскольку для серверов Let's Encrypt существует ограничение на этот публичный домен (проверка SSL-сертификата не удастся).
Вместо этого используйте свой собственный домен."
+}
+