Skip to main content
Glama
getRiskIdentification.ts3.35 kB
/** * Main Risk Identification Module for Jira Issues * * This file provides the main orchestration functionality for risk identification. * It aggregates risks from various categories including technical debt, dependencies, * timeline constraints, knowledge concentration, and information quality. */ import { analyzeDependencyRisk } from './analyzeDependencyRisk' import { analyzeInformationRisk } from './analyzeInformationRisk' import { analyzeKnowledgeRisk } from './analyzeKnowledgeRisk' import { analyzeTechnicalRisk } from './analyzeTechnicalRisk' import { analyzeTimelineRisk } from './analyzeTimelineRisk' import { calculateRiskScore } from './utils/calculateRiskScore' import { generateMitigationSuggestions } from './utils/generateMitigationSuggestions' import type { PreviousAnalysisResults, RiskIdentification } from './types/riskIdentification.types' import type { IssueCommentResponse } from '../../../types/comment' import type { JiraIssue } from '../../../types/issue.types' /** * Identifies risks in a Jira issue by analyzing various risk categories * * @param issue - The Jira issue to analyze * @param commentsResponse - Comments related to the issue * @param previousResults - Optional previous analysis results for enhanced risk detection * @returns Risk identification with overall score, identified risks, and mitigation suggestions */ export function getRiskIdentification( issue: JiraIssue, commentsResponse: IssueCommentResponse, previousResults?: PreviousAnalysisResults, ): RiskIdentification { // Analyze different risk categories const technicalRiskResult = analyzeTechnicalRisk(issue, commentsResponse) const dependencyRiskResult = analyzeDependencyRisk(issue, commentsResponse, previousResults) const timelineRiskResult = analyzeTimelineRisk(issue, commentsResponse, previousResults) const knowledgeRiskResult = analyzeKnowledgeRisk(issue, commentsResponse, previousResults) const informationRiskResult = analyzeInformationRisk(issue, commentsResponse, previousResults) // Calculate overall risk score from category scores const score = calculateRiskScore( technicalRiskResult.score, dependencyRiskResult.score, timelineRiskResult.score, knowledgeRiskResult.score, informationRiskResult.score, ) // Combine all risk items from different categories const allRiskItems = [ ...technicalRiskResult.riskItems, ...dependencyRiskResult.riskItems, ...timelineRiskResult.riskItems, ...knowledgeRiskResult.riskItems, ...informationRiskResult.riskItems, ] // Generate consolidated mitigation suggestions // First collect all from individual analyzers const allSuggestions = [ ...technicalRiskResult.mitigationSuggestions, ...dependencyRiskResult.mitigationSuggestions, ...timelineRiskResult.mitigationSuggestions, ...knowledgeRiskResult.mitigationSuggestions, ...informationRiskResult.mitigationSuggestions, ] // Then filter to remove duplicates const uniqueSuggestions = [...new Set(allSuggestions)] // Generate additional suggestions based on all risk items const additionalSuggestions = generateMitigationSuggestions(allRiskItems) // Combine all suggestions and keep unique ones const mitigationSuggestions = [...new Set([...uniqueSuggestions, ...additionalSuggestions])] return { score, items: allRiskItems, mitigationSuggestions, } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tbreeding/jira-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server