Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 9 additions & 30 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,46 +34,25 @@ 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
- Performance considerations
- 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:*)"'

44 changes: 17 additions & 27 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:*)'

45 changes: 45 additions & 0 deletions lang/ru.json
Original file line number Diff line number Diff line change
@@ -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": "<span class='text-helper'>Примеры</span><br>Для публичных репозиториев используйте <span class='text-helper'>https://...</span>.<br>Для приватных репозиториев используйте <span class='text-helper'>git@...</span>.<br><br>https://github.com/coollabsio/coolify-examples будет выбрана ветка <span class='text-helper'>main</span><br>https://github.com/coollabsio/coolify-examples/tree/nodejs-fastify будет выбрана ветка <span class='text-helper'>nodejs-fastify</span>.<br>https://gitea.com/sedlav/expressjs.git будет выбрана ветка <span class='text-helper'>main</span>.<br>https://gitlab.com/andrasbacsai/nodejs-example.git будет выбрана ветка <span class='text-helper'>main</span>.",
"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 <span class='dark:text-red-500 text-red-500 font-bold'>НЕ</span> рекомендуется, поскольку для серверов Let's Encrypt существует ограничение на этот публичный домен (проверка SSL-сертификата не удастся). <br><br>Вместо этого используйте свой собственный домен."
}