Our pipeline could mark issues on youtrack as fixed even if they were not in release branch.
Added single script for all pipelines to deremine which commits enetered given release so changelog, whats new and release itself are using exactly same logic
Commands describe themselves in @ExCommand/@CommandOrMotion, generateHelp renders the Vim-style help file and a workflow keeps it up to date on master.
Replace the scripts:eapReleaseActions Gradle/Kotlin task with a tsx
implementation wired into the EAP release pipeline as a script step.
Behavior is unchanged: Ready To Release tickets not yet tagged as
released in EAP get the tag plus the EAP-availability comment.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
These were disabled in TeamCity since well before 2.29.0 and the TS
promoter wired in the previous commit takes over their responsibilities.
JGit stays as a dependency — still used by addReleaseTag.kt,
selectBranch.kt, calculateNewDevVersion.kt, and util.kt.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move the author update script from Kotlin to TypeScript, including tests.
Changes:
- Create scripts-ts/src/updateAuthors.ts
- Create scripts-ts/src/updateAuthors.test.ts with vitest
- Add vitest to package.json
- Create scriptsTests.yml workflow for running tests
- Update updateAuthors.yml workflow to use Node.js
- Remove Kotlin implementation and test
- Remove unused github-api dependency
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move the plugin dependency checker from Kotlin to TypeScript for
consistency with other scripts.
- Create scripts-ts/src/checkNewPluginDependencies.ts
- Update workflow to use Node.js instead of JDK/Gradle
- Remove Kotlin implementation and Gradle task
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Delete scripts that have been migrated to TypeScript or are unused:
- youtrackAnalysis/SelectTicketForAnalysis.kt (TS version used)
- youtrackAnalysis/CompleteTicketAnalysis.kt (TS version used)
- youtrackToolkit.kt (not imported anywhere)
- Related Gradle tasks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Delete unused integration test infrastructure:
- .github/workflows/integrationsTest.yml
- scripts/src/main/kotlin/scripts/integrationsTest.kt
- Gradle task from build.gradle.kts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move the script from Kotlin (scripts/) to TypeScript (scripts-ts/)
for consistency with other YouTrack automation scripts.
Changes:
- Add setStatus() function to youtrack.ts
- Create updateYoutrackOnCommit.ts with git log parsing
- Update GitHub workflow to use Node.js instead of JDK/Gradle
- Remove Kotlin implementation and changelogUtils.kt
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This adds a GitHub Action that automatically analyzes random open YouTrack
tickets to determine if they're suitable for automated fixing by Claude Code.
New files:
- youtrackAutoAnalysis.yml: Manual-trigger workflow that orchestrates the process
- SelectTicketForAnalysis.kt: Picks random open ticket without "claude-analyzed" tag
- CompleteTicketAnalysis.kt: Tags ticket and optionally adds analysis comment
Changes:
- youtrack.kt: Add getTicketDetails() function and claudeAnalyzedTagId constant
- build.gradle.kts: Register selectTicketForAnalysis and completeTicketAnalysis tasks
The workflow evaluates tickets based on: clarity, reproducibility (for bugs),
scope (no big refactoring), and testability. If suitable, Claude creates a PR.
All analyzed tickets are tagged to exclude from future runs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix ReleaseEap to use env.ORG_GRADLE_PROJECT_youtrackToken pattern
(matching ReleasePlugin) instead of env.YOUTRACK_TOKEN
- Remove YouTrack test configuration (no longer needed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new TeamCity build type to test YouTrack API connection
- Create testYoutrackConnection gradle task
- Update YouTrack token in ReleaseEap (apply UI patch)
- Fail immediately if YOUTRACK_TOKEN is not set
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove SlackNotificationTest build config and patch
- Remove unused Kotlin slackNotification code and gradle tasks
- Add ANTHROPIC_API_KEY credential to release builds
- Update prompt for calm, professional internal team tone
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace markdown-to-slack library with Claude Code CLI for generating
Slack messages. This simplifies the code and adds retry logic where
Claude analyzes Slack errors and fixes the message format.
Changes:
- Add callClaudeCode() to shell out to `claude --print`
- Add sendToSlackWithRetry() with 3 retry attempts
- Add dry-run mode (4th argument) for testing
- Add slackNotificationTest gradle task
- Add TeamCity build config for testing
- Remove mark-down-to-slack dependency
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace fragile 'yole' marker with section header constants
- Add isJetBrainsEmployee property to Author (checks @jetbrains.com)
- Route JetBrains employees to "Contributors with JetBrains IP:" section
- Extract emails from entire file to prevent duplicates across sections
- Add unit tests for author adding logic
- Remove markdown parser dependency for section finding
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add environment("YOUTRACK_TOKEN", youtrackToken) to JavaExec tasks
that use YouTrack API: releaseActions, eapReleaseActions,
updateYoutrackOnCommit, integrationsTest, and updateChangelog.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Updated `integrationsTest` script to accept project directory as an argument.
- Modified `build.gradle.kts` to pass project root directory to the `integrationsTest` task.
- Improved flexibility and reusability by allowing dynamic project directory input.
- Moved `integrationsTest` logic from `build.gradle.kts` to `scripts/integrationsTest.kt`.
- Registered `integrationsTest` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Improved modularity by isolating test logic into a dedicated script.
- Simplified task structure and maintained existing functionality.
- Extracted `releaseActions` logic from `build.gradle.kts` into `scripts/releaseActions.kt`.
- Registered `releaseActions` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Added helper functions for YouTrack version management (`addReleaseToYoutrack`, `getVersionIdByName`, `setYoutrackFixVersion`, etc.).
- Simplified coroutine usage and modularized task logic for maintainability.