Skip to content

jhonatademuner/release-guard

Repository files navigation

Release Guard ⛨

License: MIT Kotlin Spring Boot

Release Guard is a Spring Boot application that helps validate Jira issue readiness for releases by checking blocking status and providing simplified issue information.

Key Features ✨

  • Retrieve simplified Jira issue information
  • Check if an issue is blocked by unresolved dependencies
  • REST API for integration with CI/CD pipelines
  • Custom exception handling with proper HTTP status codes
  • Comprehensive test coverage (unit & integration tests)

Technologies Used 🛠️

  • Kotlin 1.9.25
  • Spring Boot 3.4.4
  • Gradle 8.13
  • JUnit 5 & MockK for testing
  • Jackson for JSON processing

Installation & Setup 🚀

Prerequisites

  • Java 21 JDK
  • Gradle 8.x
  • Valid Jira account with API access

Steps

  1. Clone the repository:

    git clone https://github.com/jhonatademuner/release-guard.git
    cd release-guard
  2. Configure Jira credentials in src/main/resources/application.properties:

    jira.instance-url=https://your-jira-instance.atlassian.net
    jira.email=your@email.com
    jira.api-token=your-api-token
  3. Build the application:

    ./gradlew build
  4. Run the application:

    ./gradlew bootRun

API Documentation 📚

Get Simplified Issue Information

Request:

GET /api/jira/issue/{issueKey}

Response:

{
"key": "JIRA-123",
"summary": "Implement security layer",
"status": "IN_PROGRESS",
"linkedIssues": [
    {
    "key": "JIRA-456",
    "type": "BLOCKS",
    "status": "TO_DO",
    "linkDirection": "INWARD"
    }
]
}

Check Block Status

Request:

GET /api/jira/issue/{issueKey}/block-status

Response:

true if unblocked, false if blocked

Testing 🧪

Run all tests:

./gradlew test

Test coverage includes:

  • Jira client integration tests
  • Controller layer tests
  • Service logic tests
  • Exception handling tests
  • Model assembler tests

Contributing 🤝

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

💡 Please ensure all tests pass and include new tests for any added functionality.

License 📄

This project is licensed under the MIT License - see the LICENSE file for details.

About

Spring Boot application that helps validate Jira issue readiness for releases by checking blocking status and providing simplified issue information.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors