-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
π synced file(s) with OpenIMSDK/Open-IM-Server
π€ kubbot to synchronize the warehouse
- Loading branch information
Showing
3 changed files
with
241 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
#!/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. | ||
# | ||
# ============================================================================== | ||
# | ||
# Store this file as .git/hooks/commit-msg in your repository in order to | ||
# enforce checking for proper commit message format before actual commits. | ||
# You may need to make the script executable by 'chmod +x .git/hooks/commit-msg'. | ||
|
||
# commit-msg use go-gitlint tool, install go-gitlint via `go get github.com/llorllale/go-gitlint/cmd/go-gitlint` | ||
# go-gitlint --msg-file="$1" | ||
|
||
# An example hook script to check the commit log message. | ||
# Called by "git commit" with one argument, the name of the file | ||
# that has the commit message. The hook should exit with non-zero | ||
# status after issuing an appropriate message if it wants to stop the | ||
# commit. The hook is allowed to edit the commit message file. | ||
|
||
YELLOW="\e[93m" | ||
GREEN="\e[32m" | ||
RED="\e[31m" | ||
ENDCOLOR="\e[0m" | ||
|
||
printMessage() { | ||
printf "${YELLOW}OpenIM : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printSuccess() { | ||
printf "${GREEN}OpenIM : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printError() { | ||
printf "${RED}OpenIM : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printMessage "Running the OpenIM commit-msg hook." | ||
|
||
# This example catches duplicate Signed-off-by lines. | ||
|
||
test "" = "$(grep '^Signed-off-by: ' "$1" | | ||
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { | ||
echo >&2 Duplicate Signed-off-by lines. | ||
exit 1 | ||
} | ||
|
||
# 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=".*" \ | ||
--max-parents=1 | ||
|
||
if [ $? -ne 0 ] | ||
then | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
#!/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. | ||
# | ||
# ============================================================================== | ||
# 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" | ||
RED="\e[31m" | ||
ENDCOLOR="\e[0m" | ||
|
||
printMessage() { | ||
printf "${YELLOW}openim : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printSuccess() { | ||
printf "${GREEN}openim : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printError() { | ||
printf "${RED}openim : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printMessage "Running local openim pre-commit hook." | ||
|
||
# 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 | ||
filesize=$(( $1 / 2**20 )) | ||
|
||
cat <<HEREDOC | ||
File $filename is $filesize MB, which is larger than github's maximum | ||
file size (2 MB). We will not be able to push this file to GitHub. | ||
Commit aborted | ||
HEREDOC | ||
git status | ||
|
||
} | ||
|
||
# Move to the repo root so git files paths make sense | ||
repo_root=$( git rev-parse --show-toplevel ) | ||
cd $repo_root | ||
|
||
empty_tree=$( git hash-object -t tree /dev/null ) | ||
|
||
if git rev-parse --verify HEAD > /dev/null 2>&1 | ||
then | ||
against=HEAD | ||
else | ||
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=$(([ ! -f $file ] && echo 0) || (ls -la $file | awk '{ print $5 }')) | ||
if [ "$file_size" -gt "$limit" ]; then | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
#!/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" | ||
RED="\e[31m" | ||
ENDCOLOR="\e[0m" | ||
|
||
printMessage() { | ||
printf "${YELLOW}OpenIM : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printSuccess() { | ||
printf "${GREEN}OpenIM : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printError() { | ||
printf "${RED}OpenIM : $1${ENDCOLOR}\n" | ||
} | ||
|
||
printMessage "Running local OpenIM pre-push hook." | ||
|
||
if [[ `git status --porcelain` ]]; then | ||
printError "This script needs to run against committed code only. Please commit or stash you changes." | ||
exit 1 | ||
fi | ||
|
||
# | ||
#printMessage "Running the Flutter analyzer" | ||
#flutter analyze | ||
# | ||
#if [ $? -ne 0 ]; then | ||
# printError "Flutter analyzer error" | ||
# exit 1 | ||
#fi | ||
# | ||
#printMessage "Finished running the Flutter analyzer" |