A centralized collection of reusable GitHub Actions designed to streamline and automate every stage of the analyzer release process. This repository serves as a versatile toolbox, offering modular automations to eliminate manual, repetitive steps and reduce friction across squads managing analyzer projects. Whether standardizing changelog generation, automating version bumps, handling release publishing, or coordinating cross-repository tasks, these actions help teams back away from cumbersome workflows and focus more on code quality. Pick and combine the automations best suited for your analyzer’s unique release requirements, and easily extend the toolbox to cover new scenarios as they arise.
| Action | Description |
|---|---|
| Check Releasability Status | Checks the releasability status and extracts the version if successful |
| Create Integration Ticket | Creates a Jira integration ticket with a custom summary and links it to another existing ticket |
| Create Jira Release Ticket | Automates the creation of an "Ask for release" ticket in Jira |
| Create Jira Version | Creates a new version in a Jira project, with the ability to automatically determine the next version number |
| Get Jira Release Notes | Fetches Jira release notes and generates the release notes URL for a given project and version |
| Get Jira Version | Extracts a Jira-compatible version number from a release version by formatting it appropriately for Jira |
| Get Release Version | Extracts the release version from the repox status on a specified branch |
| Lock Branch | Locks or unlocks a branch by modifying the lock_branch setting in branch protection rules |
| Notify Slack on Failure | Sends a Slack notification when a job fails |
| Publish GitHub Release | Publishes a GitHub Release with notes fetched from Jira or provided directly |
| Release Jira Version | Releases a Jira version and creates the next one |
| Update Analyzer | Updates an analyzer version in SonarQube or SonarCloud and creates a pull request |
| Update Release Ticket Status | Updates the status of a Jira release ticket and can change its assignee |
| Update Rule Metadata | Automates updating rule metadata across all supported languages using the rule-api tooling |
| Workflow | Description |
|---|---|
| Automated Release Workflow | Orchestrates the end-to-end release across Jira and GitHub, with optional integration tickets and analyzer PRs |
This repository includes Claude Code skills for automating common tasks related to release workflows. Skills are instruction files (.claude/skills/<skill-name>/SKILL.md) that teach Claude Code how to perform specific tasks, using YAML frontmatter for metadata followed by detailed instructions.
| Skill | Description |
|---|---|
| automated-release-setup | Set up automated release workflow for SonarSource analyzer projects |
Skills in .claude/skills/ are automatically discovered by Claude Code when you work in this repository. Simply ask Claude Code to perform the task:
- "Set up automated release workflow"
- "Configure automated release for this project"
- "Help me create the release automation workflows"
Or use the slash command: /automated-release-setup
To use these skills in other repositories, you can either download them or symlink them.
Option 1: Download and Install Manually
# Create the skills directory if it doesn't exist
mkdir -p .claude/skills/automated-release-setup
# Download the skill
curl -o .claude/skills/automated-release-setup/SKILL.md \
https://raw.githubusercontent.com/SonarSource/release-github-actions/master/.claude/skills/automated-release-setup/SKILL.mdOption 2: Clone and Symlink
-
Clone this repository (if you haven't already):
git clone https://github.com/SonarSource/release-github-actions.git
-
Create a symlink to the skill directory in your target repository:
mkdir -p .claude/skills ln -s /path/to/release-github-actions/.claude/skills/automated-release-setup \ .claude/skills/automated-release-setup
# If installed via curl
curl -o .claude/skills/automated-release-setup/SKILL.md \
https://raw.githubusercontent.com/SonarSource/release-github-actions/master/.claude/skills/automated-release-setup/SKILL.md
# If installed via symlink, just pull the latest changes
cd /path/to/release-github-actions
git pull- Create a new directory under
.claude/skills/with your skill name - Add a
SKILL.mdfile with YAML frontmatter (name,description) followed by the skill instructions - Update this README to include your skill in the "Available Skills" table
- Submit a pull request
---
name: my-skill-name
description: >
Trigger description explaining when Claude Code should activate this skill.
Include example phrases like "set up X", "configure Y", etc.
---
# Skill Title
Detailed instructions for Claude Code to follow...The repository includes an update-action-versions workflow that creates a pull request to update all internal action references to use a specific commit or the latest version from the master branch. This workflow scans all action.yml files in the repository and updates any references to SonarSource/release-github-actions actions to point to the specified reference, ensuring consistency across all actions when updates are made to shared components.