-
Notifications
You must be signed in to change notification settings - Fork 0
JIRA transitions #71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
JIRA transitions #71
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Introduces a new GitHub Action to automatically transition JIRA tickets to a specified status based on merged branch names or JIRA components.
…ntext Consolidates Jira authentication and configuration into a single base64-encoded `jira_context` input for improved security and simplified usage.
The JIRA ticket transition action now exclusively transitions tickets based on keys found in merged branch names, removing the `components` input and related logic.
Updates the key name from 'api_key' to 'api_token' in the Jira context JSON and script for consistency and correctness.
- Rename script from extract-and-build-jql.sh to extract-issue-keys.sh for clarity - Change from building JQL query to outputting comma-separated issue keys - Rename input from target_status to transition (more accurate terminology) - Update transition-issues.sh to accept issue keys instead of JQL query - Remove spaces in comma-separated issue key output 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Implement TODO in transition-issues.sh to process individual issue keys - For each issue: GET transitions, find matching transition ID, POST to transition - Add comprehensive error handling and success/failure logging - Fix action.yml to reference correct script name (extract-issue-keys.sh) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add step to check if JIRA_CONTEXT secret is provided - Show informative message when JIRA context is not configured - Only execute transition action when JIRA context is available - Keep action inputs required, handle optionality at workflow level 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Use native bash string substitution instead of sed to fix shellcheck warning SC2001 and improve performance. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add 14 test cases covering success scenarios, error handling, and edge cases for the JIRA transition script. Implement curl mocking infrastructure to test API interactions without making real network calls. Changes: - Add test_transition-issues.bats with 14 comprehensive test cases - Refactor test_helper.bash with composable setup/teardown functions - Add curl mocking infrastructure for testing API calls - Update test_extract-issue-keys.bats to use refactored helpers - Register new tests in run_tests.sh 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Replace error body parsing with HTTP status code checking in transition-issues.sh. This makes error handling more robust by relying on standard HTTP semantics rather than JIRA-specific error message formats. Changes: - Update curl calls to capture HTTP status codes using -w flag - Check for 2xx status codes instead of parsing errorMessages field - Display HTTP status code in error messages (e.g., "HTTP 404", "HTTP 401") - Update mock curl to support configurable status codes - Add comprehensive tests for various HTTP error codes (400, 401, 403, 404, 500) - Helper functions now accept optional status_code parameter 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Update jira-transition-tickets action to use Atlassian Cloud ID instead of base URL. The action now constructs API endpoints using the format https://api.atlassian.com/ex/jira/$cloudId as per Atlassian's Cloud API standards. Changes: - Update README with cloud_id structure and instructions - Modify transition-issues.sh to parse cloud_id and build API URL - Update test fixtures to use cloud_id All tests passing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Fix documentation inconsistencies: - Change input name from target_status to transition (matches action.yml) - Update "How It Works" to reflect actual implementation (no JQL search) - Correct all usage examples to use proper input names The action directly processes each issue key and fetches available transitions, rather than using JQL to search for issues first. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Document that this action is designed to work with the merged_branches output from the universal-detect-changes-and-generate-changelog action. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Add comprehensive integration test script that validates the full workflow of extracting issue keys and transitioning JIRA tickets - Add test case for extracting issue keys from branch names with just the issue key (e.g., feature/PROJ-123) - Integration test supports both pre-encoded and individual JIRA credentials 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Transition names are now matched case-insensitively, allowing users to specify transitions in any case (e.g., "done", "Done", or "DONE"). This improves usability while maintaining full backwards compatibility with existing exact-case workflows. Changes: - Updated jq filter to use ascii_downcase for case-insensitive comparison - Added 10 comprehensive test cases covering various case scenarios - Verified backwards compatibility with existing exact-case matching 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Implements automatic discovery and execution of all .bats test files in .github/actions directory. The workflow now finds and runs each test file individually, tracking failures and providing clear pass/fail status for each test suite. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…ests Update all BATS test files to use $BATS_TEST_DIRNAME variable instead of relative paths for script execution. This ensures tests can be reliably run from any directory and follows BATS best practices. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…rate-changelog Fixed 5 failing tests by addressing both implementation bugs and incorrect test expectations. Implementation fixes: - cache-keys.sh: Added debug output showing both original and modified cache key prefix - generate-changelog.sh: Fixed is_empty() to properly handle whitespace-only content by stripping spaces and tabs - generate-changelog.sh: Fixed empty branch names handling by adding || true to grep commands Test fixes: - Updated special characters test to expect %25 (correct GitHub Actions percent-encoding) - Updated quotes test to expect alphabetically sorted branch names per implementation All 29 tests now pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Extended JIRA ticket transition functionality from Android workflow to: - ios-selfhosted-nightly-build.yml: Added jira_transition input, JIRA_CONTEXT secret, and transition_jira_tickets job - kmp-combined-nightly-build.yml: Added JIRA_TRANSITION input, JIRA_CONTEXT secret, and transition_jira_tickets job Also fixed parameter casing issues: - ios-selfhosted: Changed to snake_case for fastlane action inputs (match_password, app_store_connect_api_key_*) - kmp-combined: Fixed ios_custom_build_path to IOS_CUSTOM_BUILD_PATH Standardized default transition name to 'Testing' across all workflows. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
# Conflicts: # .github/workflows/ios-selfhosted-nightly-build.yml
fix(test): Fix all failing tests in universal-detect-changes-and-generate-changelog
…and documentation
ssestak
approved these changes
Nov 14, 2025
Contributor
ssestak
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
jira-transition-ticketsaction that automatically transitions JIRA tickets based on merged branch namesKey Changes
New Action: Created
.github/actions/jira-transition-ticketswith:Workflow Integration: Added JIRA transition capabilities to:
android-cloud-nightly-build.ymlios-selfhosted-nightly-build.ymlkmp-combined-nightly-build.ymlFeatures:
jira_transitioninput (default: "Testing")JIRA_CONTEXTsecret for authenticationBug Fixes:
Test plan
🤖 Generated with Claude Code