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-сертификата не удастся).

Вместо этого используйте свой собственный домен." +} +