summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.ameba.yml58
-rw-r--r--.github/workflows/ci.yml24
-rw-r--r--shard.lock2
-rw-r--r--shard.yml2
4 files changed, 37 insertions, 49 deletions
diff --git a/.ameba.yml b/.ameba.yml
index 96cbc8f0..c7629dcb 100644
--- a/.ameba.yml
+++ b/.ameba.yml
@@ -20,6 +20,9 @@ Lint/ShadowingOuterLocalVar:
Excluded:
- src/invidious/helpers/tokens.cr
+Lint/NotNil:
+ Enabled: false
+
#
# Style
@@ -31,6 +34,13 @@ Style/RedundantBegin:
Style/RedundantReturn:
Enabled: false
+Style/ParenthesesAroundCondition:
+ Enabled: false
+
+# This requires a rewrite of most data structs (and their usage) in Invidious.
+Style/QueryBoolMethods:
+ Enabled: false
+
#
# Metrics
@@ -39,50 +49,4 @@ Style/RedundantReturn:
# Ignore function complexity (number of if/else & case/when branches)
# For some functions that can hardly be simplified for now
Metrics/CyclomaticComplexity:
- Excluded:
- # get_about_info(ucid, locale) => [17/10]
- - src/invidious/channels/about.cr
-
- # fetch_channel_community(ucid, continuation, ...) => [34/10]
- - src/invidious/channels/community.cr
-
- # create_notification_stream(env, topics, connection_channel) => [14/10]
- - src/invidious/helpers/helpers.cr:84:5
-
- # get_index(plural_form, count) => [25/10]
- - src/invidious/helpers/i18next.cr
-
- # call(context) => [18/10]
- - src/invidious/helpers/static_file_handler.cr
-
- # show(env) => [38/10]
- - src/invidious/routes/embed.cr
-
- # get_video_playback(env) => [45/10]
- - src/invidious/routes/video_playback.cr
-
- # handle(env) => [40/10]
- - src/invidious/routes/watch.cr
-
- # playlist_ajax(env) => [24/10]
- - src/invidious/routes/playlists.cr
-
- # fetch_youtube_comments(id, cursor, ....) => [40/10]
- # template_youtube_comments(comments, locale, ...) => [16/10]
- # content_to_comment_html(content) => [14/10]
- - src/invidious/comments.cr
-
- # to_json(locale, json) => [21/10]
- # extract_video_info(video_id, ...) => [44/10]
- # process_video_params(query, preferences) => [20/10]
- - src/invidious/videos.cr
-
-
-
-#src/invidious/playlists.cr:327:5
-#[C] Metrics/CyclomaticComplexity: Cyclomatic complexity too high [19/10]
-# fetch_playlist(plid : String)
-
-#src/invidious/playlists.cr:436:5
-#[C] Metrics/CyclomaticComplexity: Cyclomatic complexity too high [11/10]
-# extract_playlist_videos(initial_data : Hash(String, JSON::Any))
+ Enabled: false
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 057e4d61..eb18f639 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -124,4 +124,28 @@ jobs:
- name: Test Docker
run: while curl -Isf http://localhost:3000; do sleep 1; done
+ ameba_lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: true
+
+ - name: Install Crystal
+ uses: crystal-lang/install-crystal@v1.8.0
+ with:
+ crystal: latest
+
+ - name: Cache Shards
+ uses: actions/cache@v3
+ with:
+ path: |
+ ./lib
+ ./bin
+ key: shards-${{ hashFiles('shard.lock') }}
+
+ - name: Install Shards
+ run: shards install
+ - name: Run Ameba linter
+ run: bin/ameba
diff --git a/shard.lock b/shard.lock
index efb60a59..397bd8bc 100644
--- a/shard.lock
+++ b/shard.lock
@@ -2,7 +2,7 @@ version: 2.0
shards:
ameba:
git: https://github.com/crystal-ameba/ameba.git
- version: 1.5.0
+ version: 1.6.1
athena-negotiation:
git: https://github.com/athena-framework/negotiation.git
diff --git a/shard.yml b/shard.yml
index be06a7df..367f7c73 100644
--- a/shard.yml
+++ b/shard.yml
@@ -35,7 +35,7 @@ development_dependencies:
version: ~> 0.10.4
ameba:
github: crystal-ameba/ameba
- version: ~> 1.5.0
+ version: ~> 1.6.1
crystal: ">= 1.0.0, < 2.0.0"