From 74ecb1dbf06ee67b72eafa716ac0b58147ab0eba Mon Sep 17 00:00:00 2001 From: kubbot <3293172751ysy@gmail.com> Date: Fri, 30 Jun 2023 01:56:46 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=84=20synced=20file(s)=20with=20OpenIM?= =?UTF-8?q?SDK/Open-IM-Server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 kubbot to synchronize the warehouse --- scripts/githooks/commit-msg | 17 +++++---- scripts/githooks/pre-commit | 71 +++++++++++++++++++++++++++++-------- scripts/githooks/pre-push | 16 +++++++++ 3 files changed, 84 insertions(+), 20 deletions(-) diff --git a/scripts/githooks/commit-msg b/scripts/githooks/commit-msg index add13ac..eede298 100644 --- a/scripts/githooks/commit-msg +++ b/scripts/githooks/commit-msg @@ -1,5 +1,4 @@ #!/usr/bin/env bash - # Copyright © 2023 OpenIMSDK. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -56,9 +55,12 @@ test "" = "$(grep '^Signed-off-by: ' "$1" | exit 1 } -./tools/go-gitlint \ - --msg-file=$1 \ - --subject-regex="^(build|chore|ci|docs|feat|feature|fix|perf|refactor|revert|style|test)(.*)?:\s?.*" \ +# TODO: go-gitlint dir set +GITLINT_DIR="./_output/tools/go-gitlint" + +$GITLINT_DIR \ + --msg-file=$1 \ + --subject-regex="^(build|chore|ci|docs|feat|feature|fix|perf|refactor|revert|style|test)(.*)?:\s?.*" \ --subject-maxlen=150 \ --subject-minlen=10 \ --body-regex=".*" \ @@ -66,7 +68,10 @@ test "" = "$(grep '^Signed-off-by: ' "$1" | if [ $? -ne 0 ] then - printError "Please fix your commit message to match OpenIM coding standards" - printError "https://OpenIM.gitbook.io/docs/essential-documentation/contribute-to-OpenIM/software-contributions/submitting-code/code-submission-guidelines#commit-message-guidelines" + if ! command -v $GITLINT_DIR &>/dev/null; then + printError "$GITLINT_DIR not found. Please run 'make tools' OR 'make tools.verify.go-gitlint' make verto install it." + fi + printError "Please fix your commit message to match kubecub coding standards" + printError "https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694#file-githook-md" exit 1 fi \ No newline at end of file diff --git a/scripts/githooks/pre-commit b/scripts/githooks/pre-commit index a52d77f..db9d7cf 100644 --- a/scripts/githooks/pre-commit +++ b/scripts/githooks/pre-commit @@ -1,5 +1,4 @@ #!/usr/bin/env bash - # Copyright © 2023 OpenIMSDK. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,6 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# ============================================================================== +# This is a pre-commit hook that ensures attempts to commit files that are +# are larger than $limit to your _local_ repo fail, with a helpful error message. + +# You can override the default limit of 2MB by supplying the environment variable: +# GIT_FILE_SIZE_LIMIT=50000000 git commit -m "test: this commit is allowed file sizes up to 50MB" +# +# ============================================================================== +# + +LC_ALL=C + +local_branch="$(git rev-parse --abbrev-ref HEAD)" +valid_branch_regex="^(main|master|develop)$|(feature|feat|release|hotfix|test|bug|ci|style|)\/[a-z0-9._-]+$|^HEAD$" + YELLOW="\e[93m" GREEN="\e[32m" @@ -21,23 +35,25 @@ RED="\e[31m" ENDCOLOR="\e[0m" printMessage() { - printf "${YELLOW}OpenIM : $1${ENDCOLOR}\n" + printf "${YELLOW}openim : $1${ENDCOLOR}\n" } printSuccess() { - printf "${GREEN}OpenIM : $1${ENDCOLOR}\n" + printf "${GREEN}openim : $1${ENDCOLOR}\n" } printError() { - printf "${RED}OpenIM : $1${ENDCOLOR}\n" + printf "${RED}openim : $1${ENDCOLOR}\n" } -printMessage "Running local OpenIM pre-commit hook." +printMessage "Running local openim pre-commit hook." -#flutter format . -##https://gist.github.com/benmccallum/28e4f216d9d72f5965133e6c43aaff6e -# TODO! GIT_FILE_SIZE_LIMIT=42000000 git commit -m "This commit is allowed file sizes up to 42MB" -limit=$(( 2 * 2**20 )) # 2MB +# flutter format . +# https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694#file-githook-md +# TODO! GIT_FILE_SIZE_LIMIT=50000000 git commit -m "test: this commit is allowed file sizes up to 50MB" +# Maximum file size limit in bytes +limit=${GIT_FILE_SIZE_LIMIT:-2000000} # Default 2MB +limitInMB=$(( $limit / 1000000 )) function file_too_large(){ filename=$0 @@ -46,24 +62,51 @@ function file_too_large(){ cat < /dev/null 2>&1 then against=HEAD else - against=empty_tree + against="$empty_tree" fi +# Set split so that for loop below can handle spaces in file names by splitting on line breaks +IFS=' +' + +shouldFail=false for file in $( git diff-index --cached --name-only $against ); do - file_size=$( ls -la $file | awk '{ print $5 }') + file_size=$(([ ! -f $file ] && echo 0) || (ls -la $file | awk '{ print $5 }')) if [ "$file_size" -gt "$limit" ]; then - file_too_large $filename $file_size - exit 1; + printError "File $file is $(( $file_size / 10**6 )) MB, which is larger than our configured limit of $limitInMB MB" + shouldFail=true fi done + +if $shouldFail +then + printMessage "If you really need to commit this file, you can override the size limit by setting the GIT_FILE_SIZE_LIMIT environment variable, e.g. GIT_FILE_SIZE_LIMIT=42000000 for 42MB. Or, commit with the --no-verify switch to skip the check entirely." + printError "Commit aborted" + exit 1; +fi + +if [[ ! $local_branch =~ $valid_branch_regex ]] +then + printError "There is something wrong with your branch name. Branch names in this project must adhere to this contract: $valid_branch_regex. +Your commit will be rejected. You should rename your branch to a valid name(feat/name OR bug/name) and try again." + printError "For more on this, read on: https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694" + exit 1 +fi \ No newline at end of file diff --git a/scripts/githooks/pre-push b/scripts/githooks/pre-push index 3402ac6..ef1b5b1 100644 --- a/scripts/githooks/pre-push +++ b/scripts/githooks/pre-push @@ -1,4 +1,20 @@ #!/usr/bin/env bash +# Copyright © 2023 OpenIMSDK. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============================================================================== +# YELLOW="\e[93m" GREEN="\e[32m"