Convert Python CI scripts to TypeScript for better type safety and consistency #3132
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR migrates all Python CI scripts to TypeScript to achieve better type safety and maintain consistency with the main codebase, which is written in TypeScript.
Background
The repository contained several Python scripts used by CI workflows for release management and changelog generation. While functional, these scripts lacked type safety and introduced an additional runtime dependency (Python) for CI operations.
Changes Made
Converted 5 Python scripts to TypeScript:
prepare_changelog.py
→prepare_changelog.ts
- Extracts changelog snippets for releasesrollback_changelog.py
→rollback_changelog.ts
- Generates changelog content for rollback releasesupdate.py
→update.ts
- Updates supported GitHub Enterprise Server versionsupdate-release-branch.py
→update-release-branch.ts
- Manages release branch updates and PR creationrelease-branches.py
→release-branches.ts
- Determines release and backport target branchesUpdated 5 workflow files to use TypeScript scripts:
ts-node
and execute scripts withnpx ts-node
Benefits
Compatibility
All scripts maintain 100% functional compatibility with their Python predecessors:
The migration follows the established pattern used by
.github/actions/check-codescanning-config/index.ts
, ensuring consistency with existing TypeScript CI tooling.Testing
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.