From 64268b1d126a9ba94457ddd8649b3398a6f192c4 Mon Sep 17 00:00:00 2001 From: PlexicusAI Date: Thu, 30 Jan 2025 10:43:10 +0000 Subject: [PATCH] Plexalyzer Workflow Integration by Plexicus --- .gitea/workflows/plexalyzer-scan.yml | 74 ++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .gitea/workflows/plexalyzer-scan.yml diff --git a/.gitea/workflows/plexalyzer-scan.yml b/.gitea/workflows/plexalyzer-scan.yml new file mode 100644 index 0000000..ffce156 --- /dev/null +++ b/.gitea/workflows/plexalyzer-scan.yml @@ -0,0 +1,74 @@ +name: PLEXALYZER Analysis +on: + pull_request: + types: [opened, synchronize] + +jobs: + analyze: + runs-on: ubuntu-latest + steps: + - name: Checkout code + run: | + git clone $GITEA_REPO_URL . + git fetch --all + git reset --hard $GITEA_COMMIT_SHA + + - name: Get Changed Files and Save to File + id: get_changed_files + shell: bash + run: | + # Capture changed files and save to a temporary file + changed_files=$(git diff --name-only "${GITEA_BASE_SHA}" "${GITEA_HEAD_SHA}") + echo "$changed_files" | jq -R -s -c 'split("\n")[:-1]' > files_to_scan.json + echo "files_path=$(pwd)/files_to_scan.json" >> $GITEA_ENV + + - name: Prepare Files List in Required Format + if: ${{ env.files_path }} + id: prepare_files + shell: bash + run: | + jq -r '.[]' "${env.files_path}" > files_to_analyze.txt + echo "files_to_analyze=$(pwd)/files_to_analyze.txt" >> $GITEA_ENV + + - name: Run PLEXALYZER Docker Analysis + shell: bash + env: + PLEXALYZER_TOKEN: ${{ secrets.PLEXALYZER_TOKEN }} + MESSAGE_URL: 'https://api.covulor.dev.plexicus.com/receive_plexalyzer_message' + run: | + # Construct the Docker command + docker_command="docker run --rm \ + -e PLEXALYZER_TOKEN=\"$PLEXALYZER_TOKEN\" \ + -e MESSAGE_URL=\"$MESSAGE_URL\" \ + -v \"${{ GITEA_WORKSPACE }}:/mounted_volumes\"" + + if [ -f "$(pwd)/files_to_analyze.txt" ]; then + docker_command+=" -v \"$(pwd)/files_to_analyze.txt:/app/files_to_analyze.txt\"" + fi + + docker_command+=" plexicus/plexalyzer-dev:latest \ + /venvs/plexicus-fastapi/bin/python /app/analyze.py \ + --repository_id \"${{ vars.COVULOR_REPO_ID }}\" \ + --name \"${{ GITEA_REPO_NAME }}\" \ + --branch \"${{ GITEA_BRANCH }}\" \ + --url \"${{ GITEA_REPO_URL }}\" \ + --no-progress-bar" + + if [ -n "${{ GITEA_REPO_OWNER }}" ]; then + docker_command+=" --owner \"${{ GITEA_REPO_OWNER }}\"" + fi + + if [ -f "$(pwd)/files_to_analyze.txt" ]; then + docker_command+=" --files \"/app/files_to_analyze.txt\"" + fi + + analysis_output=$(eval $docker_command || true) + docker_exit_code=$? + + echo "$analysis_output" > analysis_results.json + echo "findings_output=$(pwd)/analysis_results.json" >> $GITEA_ENV + echo "Docker command exit code: $docker_exit_code" + + if [ $docker_exit_code -ne 0 ]; then + echo "WARNING: Docker command failed with exit code $docker_exit_code." + fi -- 2.45.2