From d09d5f6ca08ea6d34f1adec2de86bdbf869db58a Mon Sep 17 00:00:00 2001 From: viktorstrate Date: Sat, 24 Apr 2021 19:12:45 +0200 Subject: [PATCH] Improve codeql action + fix test db clean --- .github/workflows/codeql-analysis.yml | 39 +++++++++++---------------- api/database/database.go | 14 ++++------ 2 files changed, 20 insertions(+), 33 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f1f1424e..71404491 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -15,35 +15,26 @@ jobs: if: github.repository == 'photoview/photoview' runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: + # strategy: + # fail-fast: false + # matrix: # Override automatic language detection by changing the below list # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] - language: ['go', 'javascript'] + # language: ['go', 'javascript'] # Learn more... # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - # We must fetch at least the immediate parents so that if this is - # a pull request then we can checkout the head. - fetch-depth: 2 + - name: Checkout repository + uses: actions/checkout@v2 - # If this run was triggered by a pull request event, then checkout - # the head of the pull request instead of the merge commit. - - run: git checkout HEAD^2 - if: ${{ github.event_name == 'pull_request' }} + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: go, javascript + # Run further tests + queries: security-extended, security-and-quality - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # Run further tests - queries: security-extended, security-and-quality - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/api/database/database.go b/api/database/database.go index b41f1dde..925f5c5c 100644 --- a/api/database/database.go +++ b/api/database/database.go @@ -190,21 +190,17 @@ func MigrateDatabase(db *gorm.DB) error { func ClearDatabase(db *gorm.DB) error { err := db.Transaction(func(tx *gorm.DB) error { - if err := tx.Exec("SET FOREIGN_KEY_CHECKS = 0;").Error; err != nil { - return err - } - sess := tx.Session(&gorm.Session{AllowGlobalUpdate: true}) + dry_run := tx.Session(&gorm.Session{DryRun: true}) for _, model := range database_models { - if err := sess.Delete(model).Error; err != nil { + // get table name of model structure + table := dry_run.Find(model).Statement.Table + + if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s", table)).Error; err != nil { return err } } - if err := tx.Exec("SET FOREIGN_KEY_CHECKS = 1;").Error; err != nil { - return err - } - return nil })