@@ -99,25 +99,51 @@ jobs:
9999 echo "Dependency: ${{ matrix.vulnerabilities.dependency }}"
100100 echo "Source: ${{ matrix.vulnerabilities.source }}"
101101 echo "Labels: ${{ join(matrix.vulnerabilities.labels, ', ') }}"
102- echo "ISSUE_LABELS (comma-separated): ${{ join(matrix.vulnerabilities.labels, ', ') }}"
103- echo "VULN_SEVERITY: ${{ matrix.vulnerabilities.severity }}"
104- echo "RUNTIME_VERSION: ${{ matrix.vulnerabilities.runtime_version }}"
105- echo "NSOLID_VERSION: ${{ matrix.vulnerabilities.nsolid_version }}"
106- - uses : dblock/create-a-github-issue@v3
107- with :
108- update_existing : false
109- search_existing : open
102+ echo "ISSUE_LABELS: ${{ join(matrix.vulnerabilities.labels, ',') }}"
103+
104+ - name : Create or update GitHub issue
110105 env :
111106 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
112- VULN_ID : ${{ matrix.vulnerabilities.id }}
113- VULN_URL : ${{ matrix.vulnerabilities.url }}
114- VULN_SEVERITY : ${{ matrix.vulnerabilities.severity }}
115- RUNTIME_VERSION : ${{ matrix.vulnerabilities.runtime_version }}
116- NSOLID_VERSION : ${{ matrix.vulnerabilities.nsolid_version }}
117- VULN_DEP_NAME : ${{ matrix.vulnerabilities.dependency }}
118- VULN_DEP_VERSION : ${{ matrix.vulnerabilities.version }}
119- VULN_SOURCE : ${{ matrix.vulnerabilities.source }}
120- VULN_MAIN_DEP_NAME : ${{ matrix.vulnerabilities.main_dep_name }}
121- VULN_MAIN_DEP_PATH : ${{ matrix.vulnerabilities.main_dep_path }}
122- NODEJS_STREAM : ${{ inputs.nsolidStream }}
123- ACTION_URL : " https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
107+ run : |
108+ # Set variables
109+ VULN_ID="${{ matrix.vulnerabilities.id }}"
110+ VULN_URL="${{ matrix.vulnerabilities.url }}"
111+ VULN_DEP_NAME="${{ matrix.vulnerabilities.dependency }}"
112+ VULN_DEP_VERSION="${{ matrix.vulnerabilities.version }}"
113+ VULN_SOURCE="${{ matrix.vulnerabilities.source }}"
114+ VULN_MAIN_DEP_NAME="${{ matrix.vulnerabilities.main_dep_name }}"
115+ VULN_MAIN_DEP_PATH="${{ matrix.vulnerabilities.main_dep_path }}"
116+ NODEJS_STREAM="${{ inputs.nsolidStream }}"
117+ ACTION_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
118+ LABELS="${{ join(matrix.vulnerabilities.labels, ',') }}"
119+
120+ # Create issue title
121+ ISSUE_TITLE="${VULN_ID} (${VULN_DEP_NAME}) found on ${NODEJS_STREAM}"
122+
123+ # Create issue body
124+ ISSUE_BODY="A new vulnerability for ${VULN_DEP_NAME} ${VULN_DEP_VERSION} was found:
125+ Vulnerability ID: ${VULN_ID}
126+ Vulnerability URL: ${VULN_URL}"
127+
128+ # Add npm-specific info if applicable
129+ if [ "${VULN_SOURCE}" = "npm" ] && [ -n "${VULN_MAIN_DEP_NAME}" ]; then
130+ ISSUE_BODY="${ISSUE_BODY}
131+ Main Dependency: ${VULN_MAIN_DEP_NAME}
132+ Main Dependency Path: ${VULN_MAIN_DEP_PATH}"
133+ fi
134+
135+ ISSUE_BODY="${ISSUE_BODY}
136+ Failed run: ${ACTION_URL}"
137+
138+ # Check if issue already exists
139+ EXISTING_ISSUE=$(gh issue list --search "in:title ${ISSUE_TITLE}" --state open --json number,title --jq '.[] | select(.title == "'"${ISSUE_TITLE}"'") | .number')
140+
141+ if [ -n "${EXISTING_ISSUE}" ]; then
142+ echo "Updating existing issue #${EXISTING_ISSUE}: ${ISSUE_TITLE}"
143+ gh issue edit "${EXISTING_ISSUE}" --body "${ISSUE_BODY}"
144+ echo "Updated issue: https://github.com/${{ github.repository }}/issues/${EXISTING_ISSUE}"
145+ else
146+ echo "Creating new issue: ${ISSUE_TITLE}"
147+ ISSUE_NUMBER=$(gh issue create --title "${ISSUE_TITLE}" --body "${ISSUE_BODY}" --label "${LABELS}" --json number --jq .number)
148+ echo "Created issue: https://github.com/${{ github.repository }}/issues/${ISSUE_NUMBER}"
149+ fi
0 commit comments