name: Dependency Outdated on: workflow_call: inputs: node-version: type: string default: '24.16.0' workflow_dispatch: jobs: dependency-outdated: runs-on: ubuntu-latest steps: - name: Checkout uses: https://github.com/actions/checkout@v6 - name: Setup Node.js uses: https://github.com/actions/setup-node@v4 with: node-version: ${{ inputs.node-version || '24.16.0' }} - name: Cache npm uses: https://github.com/actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Configure npm private registry run: | echo "@pzeta:registry=https://gitea.pzetatouch.it/api/packages/pzeta_touch/npm/" >> ~/.npmrc echo "//gitea.pzetatouch.it/api/packages/pzeta_touch/npm/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc - name: Install dependencies run: npm ci - name: Check outdated packages id: outdated run: | npm outdated --json > outdated.json 2>/dev/null || true OUTDATED=$(jq 'keys | length' outdated.json 2>/dev/null || echo "0") echo "count=$OUTDATED" >> $GITHUB_OUTPUT - name: Open issue if packages outdated if: steps.outdated.outputs.count != '0' env: GITEA_TOKEN: ${{ gitea.token }} SERVER_URL: ${{ gitea.server_url }} REPOSITORY: ${{ gitea.repository }} run: | OUTDATED="${{ steps.outdated.outputs.count }}" DATE=$(date '+%Y-%m-%d') OUTDATED_LIST=$(jq -r 'to_entries[] | "- \(.key): \(.value.current) → \(.value.latest)"' outdated.json 2>/dev/null | head -20 || echo "N/A") printf '## Dipendenze Obsolete — %s\n\n### Pacchetti da aggiornare: %s\n\n```\n%s\n```\n' \ "$DATE" "$OUTDATED" "$OUTDATED_LIST" > /tmp/body.md curl -s -X POST \ -H "Content-Type: application/json" \ -H "Authorization: token $GITEA_TOKEN" \ "$SERVER_URL/api/v1/repos/$REPOSITORY/issues" \ -d "{ \"title\": \"[$DATE] Dipendenze: $OUTDATED pacchetti obsoleti\", \"body\": $(jq -Rs . /tmp/body.md) }"