You've already forked sap-jenkins-library
							
							
				mirror of
				https://github.com/SAP/jenkins-library.git
				synced 2025-10-30 23:57:50 +02:00 
			
		
		
		
	chore(go): add pre-commit hook (#1006)
* chore(go): add pre-commit hook run go mod tidy add description * use bash * adjust indentation * fix code climate issue * docs: clarify git hook usage description * Update .hooks/README.md
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							d57e506217
						
					
				
				
					commit
					174d24460c
				
			
							
								
								
									
										33
									
								
								.hooks/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.hooks/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| # Git Hooks | ||||
|  | ||||
| From [Git docs](https://git-scm.com/docs/githooks#_description): | ||||
|  | ||||
| > Hooks are programs you can place in a hooks directory to trigger actions at certain points in git’s execution. Hooks that don’t have the executable bit set are ignored. | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| To use the hook, execute this command in the project root directory to link the script into the `.git/hooks` directory: | ||||
|  | ||||
| ```sh | ||||
| ln -s -f ../../.hooks/pre-commit ./.git/hooks/pre-commit | ||||
| ``` | ||||
|  | ||||
| Make sure the file is executable: | ||||
|  | ||||
| ```sh | ||||
| chmod +x ./.hooks/pre-commit | ||||
| ``` | ||||
|  | ||||
| ## Pre-Commit Hook | ||||
|  | ||||
| From [Git docs](https://git-scm.com/docs/githooks#_pre_commit): | ||||
|  | ||||
| > This hook is invoked by git-commit, and can be bypassed with the --no-verify option. It takes no parameters, and is invoked before obtaining the proposed commit log message and making a commit. Exiting with a non-zero status from this script causes the git commit command to abort before creating a commit. | ||||
|  | ||||
| ### Content | ||||
|  | ||||
| Executes `go mod tidy` and stages `go.mod` & `go.sum`. | ||||
|  | ||||
| From [Golang docs](https://github.com/golang/go/wiki/Modules): | ||||
|  | ||||
| > `go mod tidy` — Prune any no-longer-needed dependencies from `go.mod` and add any dependencies needed for other combinations of OS, architecture, and build tags (details). | ||||
							
								
								
									
										11
									
								
								.hooks/pre-commit
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								.hooks/pre-commit
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| STAGED_GO_FILES=$(git diff --staged --name-only | grep "\.go$") | ||||
|  | ||||
| if [[ "$STAGED_GO_FILES" = "" ]]; then | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| echo "cleaning GO dependencies" | ||||
| go mod tidy | ||||
| git add go.mod go.sum | ||||
		Reference in New Issue
	
	Block a user