-
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: update version to 1.23.1 and enhance changelog with security fi… #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,149 @@ | ||||||
| #!/usr/bin/env bash | ||||||
|
|
||||||
|
|
||||||
| set -e +o pipefail | ||||||
|
|
||||||
| # Set up paths first | ||||||
| bin_name="codacy-cli-v2" | ||||||
|
|
||||||
| # Determine OS-specific paths | ||||||
| os_name=$(uname) | ||||||
| arch=$(uname -m) | ||||||
|
|
||||||
| case "$arch" in | ||||||
| "x86_64") | ||||||
| arch="amd64" | ||||||
| ;; | ||||||
| "x86") | ||||||
| arch="386" | ||||||
| ;; | ||||||
| "aarch64"|"arm64") | ||||||
| arch="arm64" | ||||||
| ;; | ||||||
| esac | ||||||
|
|
||||||
| if [ -z "$CODACY_CLI_V2_TMP_FOLDER" ]; then | ||||||
| if [ "$(uname)" = "Linux" ]; then | ||||||
| CODACY_CLI_V2_TMP_FOLDER="$HOME/.cache/codacy/codacy-cli-v2" | ||||||
| elif [ "$(uname)" = "Darwin" ]; then | ||||||
| CODACY_CLI_V2_TMP_FOLDER="$HOME/Library/Caches/Codacy/codacy-cli-v2" | ||||||
| else | ||||||
| CODACY_CLI_V2_TMP_FOLDER=".codacy-cli-v2" | ||||||
| fi | ||||||
| fi | ||||||
|
|
||||||
| version_file="$CODACY_CLI_V2_TMP_FOLDER/version.yaml" | ||||||
|
|
||||||
|
|
||||||
| get_version_from_yaml() { | ||||||
| if [ -f "$version_file" ]; then | ||||||
| local version=$(grep -o 'version: *"[^"]*"' "$version_file" | cut -d'"' -f2) | ||||||
| if [ -n "$version" ]; then | ||||||
| echo "$version" | ||||||
| return 0 | ||||||
| fi | ||||||
| fi | ||||||
| return 1 | ||||||
| } | ||||||
|
|
||||||
| get_latest_version() { | ||||||
| local response | ||||||
| if [ -n "$GH_TOKEN" ]; then | ||||||
| response=$(curl -Lq --header "Authorization: Bearer $GH_TOKEN" "https://api.github.com/repos/codacy/codacy-cli-v2/releases/latest" 2>/dev/null) | ||||||
| else | ||||||
| response=$(curl -Lq "https://api.github.com/repos/codacy/codacy-cli-v2/releases/latest" 2>/dev/null) | ||||||
| fi | ||||||
|
|
||||||
| handle_rate_limit "$response" | ||||||
| local version=$(echo "$response" | grep -m 1 tag_name | cut -d'"' -f4) | ||||||
| echo "$version" | ||||||
| } | ||||||
|
|
||||||
| handle_rate_limit() { | ||||||
| local response="$1" | ||||||
| if echo "$response" | grep -q "API rate limit exceeded"; then | ||||||
| fatal "Error: GitHub API rate limit exceeded. Please try again later" | ||||||
| fi | ||||||
| } | ||||||
|
|
||||||
| download_file() { | ||||||
| local url="$1" | ||||||
|
|
||||||
| echo "Downloading from URL: ${url}" | ||||||
| if command -v curl > /dev/null 2>&1; then | ||||||
| curl -# -LS "$url" -O | ||||||
| elif command -v wget > /dev/null 2>&1; then | ||||||
| wget "$url" | ||||||
| else | ||||||
| fatal "Error: Could not find curl or wget, please install one." | ||||||
| fi | ||||||
| } | ||||||
|
|
||||||
| download() { | ||||||
| local url="$1" | ||||||
| local output_folder="$2" | ||||||
|
|
||||||
| ( cd "$output_folder" && download_file "$url" ) | ||||||
| } | ||||||
|
|
||||||
| download_cli() { | ||||||
| # OS name lower case | ||||||
| suffix=$(echo "$os_name" | tr '[:upper:]' '[:lower:]') | ||||||
|
|
||||||
| local bin_folder="$1" | ||||||
| local bin_path="$2" | ||||||
| local version="$3" | ||||||
|
|
||||||
| if [ ! -f "$bin_path" ]; then | ||||||
| echo "📥 Downloading CLI version $version..." | ||||||
|
|
||||||
| remote_file="codacy-cli-v2_${version}_${suffix}_${arch}.tar.gz" | ||||||
| url="https://github.com/codacy/codacy-cli-v2/releases/download/${version}/${remote_file}" | ||||||
|
|
||||||
| download "$url" "$bin_folder" | ||||||
| tar xzfv "${bin_folder}/${remote_file}" -C "${bin_folder}" | ||||||
| fi | ||||||
| } | ||||||
|
|
||||||
| # Warn if CODACY_CLI_V2_VERSION is set and update is requested | ||||||
| if [ -n "$CODACY_CLI_V2_VERSION" ] && [ "$1" = "update" ]; then | ||||||
| echo "⚠️ Warning: Performing update with forced version $CODACY_CLI_V2_VERSION" | ||||||
| echo " Unset CODACY_CLI_V2_VERSION to use the latest version" | ||||||
| fi | ||||||
|
|
||||||
| # Ensure version.yaml exists and is up to date | ||||||
| if [ ! -f "$version_file" ] || [ "$1" = "update" ]; then | ||||||
| echo "ℹ️ Fetching latest version..." | ||||||
| version=$(get_latest_version) | ||||||
| mkdir -p "$CODACY_CLI_V2_TMP_FOLDER" | ||||||
| echo "version: \"$version\"" > "$version_file" | ||||||
| fi | ||||||
|
|
||||||
| # Set the version to use | ||||||
| if [ -n "$CODACY_CLI_V2_VERSION" ]; then | ||||||
| version="$CODACY_CLI_V2_VERSION" | ||||||
| else | ||||||
| version=$(get_version_from_yaml) | ||||||
| fi | ||||||
|
|
||||||
|
|
||||||
| # Set up version-specific paths | ||||||
| bin_folder="${CODACY_CLI_V2_TMP_FOLDER}/${version}" | ||||||
|
|
||||||
| mkdir -p "$bin_folder" | ||||||
| bin_path="$bin_folder"/"$bin_name" | ||||||
|
|
||||||
| # Download the tool if not already installed | ||||||
| download_cli "$bin_folder" "$bin_path" "$version" | ||||||
| chmod +x "$bin_path" | ||||||
|
|
||||||
| run_command="$bin_path" | ||||||
| if [ -z "$run_command" ]; then | ||||||
| fatal "Codacy cli v2 binary could not be found." | ||||||
| fi | ||||||
|
|
||||||
| if [ "$#" -eq 1 ] && [ "$1" = "download" ]; then | ||||||
| echo "Codacy cli v2 download succeeded" | ||||||
| else | ||||||
| eval "$run_command $*" | ||||||
|
||||||
| eval "$run_command $*" | |
| "$run_command" "$@" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| runtimes: | ||
| - java@17.0.10 | ||
| - node@22.2.0 | ||
| - python@3.11.11 | ||
| tools: | ||
| - eslint@8.57.0 | ||
| - lizard@1.17.31 | ||
| - pmd@6.55.0 | ||
| - semgrep@1.78.0 | ||
| - trivy@0.66.0 |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,5 +1,5 @@ | ||||||
| import * as vscode from 'vscode'; | ||||||
| import { promptMagentoProjectSelection, showErrorMessage, activateExtension, isValidPath, deleteReportFile, clearFileContentCache, selectMagentoRootFolder, selectMagentoRootFolderDirect, getEffectiveMagentoRoot, selectMagentoRootFromSettings, autoCleanupOldLogFiles, stopPeriodicCleanup } from './helpers'; | ||||||
| import { promptMagentoProjectSelection, showErrorMessage, activateExtension, isValidPath, deleteReportFile, clearFileContentCache, selectMagentoRootFolderDirect, getEffectiveMagentoRoot, selectMagentoRootFromSettings, autoCleanupOldLogFiles, stopPeriodicCleanup } from './helpers'; | ||||||
|
||||||
| import { promptMagentoProjectSelection, showErrorMessage, activateExtension, isValidPath, deleteReportFile, clearFileContentCache, selectMagentoRootFolderDirect, getEffectiveMagentoRoot, selectMagentoRootFromSettings, autoCleanupOldLogFiles, stopPeriodicCleanup } from './helpers'; | |
| import { promptMagentoProjectSelection, showErrorMessage, activateExtension, isValidPath, deleteReportFile, clearFileContentCache, selectMagentoRootFolderDirect, getEffectiveMagentoRoot, selectMagentoRootFromSettings, stopPeriodicCleanup } from './helpers'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The script calls a
fatalfunction on lines 65, 78, and 142, but this function is never defined. This will cause the script to fail with "fatal: command not found" when these error conditions are encountered.Consider adding a
fatalfunction definition at the beginning of the script: