Compare commits

..

1 Commits

Author SHA1 Message Date
Piyush Gupta
e9650ef12f fix: sonarqube workflow 2025-03-10 15:13:04 +05:30
6 changed files with 17 additions and 70 deletions

View File

@@ -4,7 +4,7 @@ on:
push:
branches:
- main
pull_request:
pull_request_target:
types: [opened, synchronize, reopened]
merge_group:
permissions:

View File

@@ -5,7 +5,7 @@ permissions:
on:
workflow_dispatch:
pull_request_target:
pull_request:
types: [opened, synchronize, reopened]
jobs:
@@ -14,13 +14,6 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }}
- name: Checkout PR
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup Node.js
uses: actions/setup-node@v4

View File

@@ -3,7 +3,7 @@ permissions:
contents: read
on:
pull_request_target:
pull_request:
types: [closed]
branches:
- main
@@ -23,16 +23,18 @@ jobs:
- name: Get source branch name
id: branch-name
run: |
RAW_BRANCH="${{ github.head_ref }}"
SOURCE_BRANCH=$(echo "$RAW_BRANCH" | sed 's/[^a-zA-Z0-9._\/-]//g')
# For PR merges, use the head ref from the pull request event
SOURCE_BRANCH="${{ github.head_ref }}"
# Only remove username prefix if needed
if [[ "$SOURCE_BRANCH" =~ ^[a-zA-Z0-9][a-zA-Z0-9-]+/ ]]; then
PREFIX=${SOURCE_BRANCH%%/*}
if [[ ! "$PREFIX" =~ ^(feature|fix|bugfix|hotfix|release|chore|docs|test|refactor|style|perf|build|ci|revert)$ ]]; then
SOURCE_BRANCH=${SOURCE_BRANCH#*/}
fi
fi
# Safely add to environment variables using GitHub's recommended method
# This prevents environment variable injection attacks
echo "SOURCE_BRANCH<<EOF" >> $GITHUB_ENV
echo "$SOURCE_BRANCH" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
echo "SOURCE_BRANCH=$SOURCE_BRANCH" >> $GITHUB_ENV
echo "Detected source branch: $SOURCE_BRANCH"
- name: Setup Node.js
@@ -51,7 +53,6 @@ jobs:
--filter-tag "draft:${SOURCE_BRANCH}" \
--tag production \
--untag "draft:${SOURCE_BRANCH}"
--verbose
- name: Tag unused production keys as Deprecated
run: |
@@ -59,7 +60,6 @@ jobs:
--api-key ${{ secrets.TOLGEE_API_KEY }} \
--filter-not-extracted --filter-tag production \
--tag deprecated --untag production
--verbose
- name: Tag unused draft:current-branch keys as Deprecated
run: |
@@ -67,7 +67,6 @@ jobs:
--api-key ${{ secrets.TOLGEE_API_KEY }} \
--filter-not-extracted --filter-tag "draft:${SOURCE_BRANCH}" \
--tag deprecated --untag "draft:${SOURCE_BRANCH}"
--verbose
- name: Sync with backup
run: |

3
.gitignore vendored
View File

@@ -53,5 +53,4 @@ yarn-error.log*
packages/lib/uploads
apps/web/public/js
packages/database/migrations
branch.json
.vercel
branch.json

View File

@@ -75,7 +75,6 @@ export const sendEmail = async (emailData: SendEmailDataProps): Promise<boolean>
return true;
} catch (error) {
console.error("Error in sendEmail:", error);
throw new InvalidInputError("Incorrect SMTP credentials");
}
};

View File

@@ -36,36 +36,6 @@ export function FileInput({
const [isUploading, setIsUploading] = useState(false);
const [parent] = useAutoAnimate();
// Helper function to filter duplicate files
const filterDuplicateFiles = <T extends { name: string }>(
files: T[],
checkAgainstSelected: boolean = true
): {
filteredFiles: T[];
duplicateFiles: T[];
} => {
const existingFileNames = fileUrls ? fileUrls.map(getOriginalFileNameFromUrl) : [];
const duplicateFiles = files.filter(
(file) =>
existingFileNames.includes(file.name) ||
(checkAgainstSelected && selectedFiles.some((selectedFile) => selectedFile.name === file.name))
);
const filteredFiles = files.filter(
(file) =>
!existingFileNames.includes(file.name) &&
(!checkAgainstSelected || !selectedFiles.some((selectedFile) => selectedFile.name === file.name))
);
if (duplicateFiles.length > 0) {
const duplicateNames = duplicateFiles.map((file) => file.name).join(", ");
alert(`The following files are already uploaded: ${duplicateNames}. Duplicate files are not allowed.`);
}
return { filteredFiles, duplicateFiles };
};
// Listen for the native file-upload event dispatched via window.formbricksSurveys.onFilePick
useEffect(() => {
const handleNativeFileUpload = async (
@@ -77,7 +47,7 @@ export function FileInput({
setIsUploading(true);
// Filter out files that exceed the maximum size
let filteredFiles: typeof filesFromNative = [];
const filteredFiles: typeof filesFromNative = [];
const rejectedFiles: string[] = [];
if (maxSizeInMB) {
@@ -97,10 +67,6 @@ export function FileInput({
filteredFiles.push(...filesFromNative);
}
// Check for duplicate files - native uploads don't need to check against selectedFiles
const { filteredFiles: nonDuplicateFiles } = filterDuplicateFiles(filteredFiles, false);
filteredFiles = nonDuplicateFiles;
// Display alert for rejected files
if (rejectedFiles.length > 0) {
const fileNames = rejectedFiles.join(", ");
@@ -147,7 +113,7 @@ export function FileInput({
};
const handleFileSelection = async (files: FileList) => {
let fileArray = Array.from(files);
const fileArray = Array.from(files);
if (!allowMultipleFiles && fileArray.length > 1) {
alert("Only one file can be uploaded at a time.");
@@ -159,17 +125,8 @@ export function FileInput({
return;
}
// Check for duplicate files
const { filteredFiles: nonDuplicateFiles } = filterDuplicateFiles(fileArray);
if (nonDuplicateFiles.length === 0) {
return; // No non-duplicate files to process
}
fileArray = nonDuplicateFiles;
// filter out files that are not allowed
const validFiles = fileArray.filter((file) => {
const validFiles = Array.from(files).filter((file) => {
const fileExtension = file.type.substring(file.type.lastIndexOf("/") + 1) as TAllowedFileExtension;
if (allowedFileExtensions) {
return allowedFileExtensions.includes(fileExtension);