Add python test script for Git
This commit is contained in:
		
							parent
							
								
									840143eec5
								
							
						
					
					
						commit
						0a759c0d1f
					
				
							
								
								
									
										15
									
								
								python/gitloaded.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								python/gitloaded.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "git": {
 | 
				
			||||||
 | 
					      "token": "84014fake588token55b46751for4297u361223",
 | 
				
			||||||
 | 
					      "id": "shaunrd0",
 | 
				
			||||||
 | 
					      "name": "Shaun Reed",
 | 
				
			||||||
 | 
					      "email": "shaunrd0@gmail.com"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    "repos": {
 | 
				
			||||||
 | 
					        "klips": "/home/kapper/Code/test",
 | 
				
			||||||
 | 
					        "cmake": "/home/kapper/Code/cmake"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										62
									
								
								python/gittest.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								python/gittest.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					###############################################################################
 | 
				
			||||||
 | 
					## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
 | 
				
			||||||
 | 
					##                                                                           ##
 | 
				
			||||||
 | 
					## A test script for using Git APIs and gitpython module                     ##
 | 
				
			||||||
 | 
					###############################################################################
 | 
				
			||||||
 | 
					# gittest.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import git
 | 
				
			||||||
 | 
					import requests
 | 
				
			||||||
 | 
					import json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def local_status(path):
 | 
				
			||||||
 | 
					  repo = git.Repo(path)
 | 
				
			||||||
 | 
					  if repo.bare is True:
 | 
				
			||||||
 | 
					    print("Error loading repository located at %s, check that it is a repository\n" % path)
 | 
				
			||||||
 | 
					  else:
 | 
				
			||||||
 | 
					    print("Loaded local repository: %s\n\tOrigin URL: %s" % (repo.description, repo.remotes['origin']))
 | 
				
			||||||
 | 
					  return repo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def remote_status(user, repo):
 | 
				
			||||||
 | 
					  reply = requests.get('https://api.github.com/repos/%s/%s/commits' % (user, repo))
 | 
				
			||||||
 | 
					  commits = reply.json()
 | 
				
			||||||
 | 
					  remoteCommit = []
 | 
				
			||||||
 | 
					  remoteCommit.append(commits[0]['commit']['author']['name'])
 | 
				
			||||||
 | 
					  remoteCommit.append(commits[0]['commit']['author']['email'])
 | 
				
			||||||
 | 
					  remoteCommit.append(commits[0]['commit']['author']['date'])
 | 
				
			||||||
 | 
					  remoteCommit.append(commits[0]['commit']['message'])
 | 
				
			||||||
 | 
					  print("Fetched most recent commit by %s <%s> on %s \n\tCommit message: %s\n" % (tuple(remoteCommit)))
 | 
				
			||||||
 | 
					  return remoteCommit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def load_config():
 | 
				
			||||||
 | 
					  global user
 | 
				
			||||||
 | 
					  global paths
 | 
				
			||||||
 | 
					  with open(config, 'r') as f:
 | 
				
			||||||
 | 
					    loadedConfig = json.load(f)
 | 
				
			||||||
 | 
					  user = loadedConfig[0]['git']
 | 
				
			||||||
 | 
					  paths = loadedConfig[0]['repos']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def load_repo(path):
 | 
				
			||||||
 | 
					  global user
 | 
				
			||||||
 | 
					  local = local_status(paths[path])
 | 
				
			||||||
 | 
					  print("\tRepo: ", repo)
 | 
				
			||||||
 | 
					  remote_status(user["id"], repo)
 | 
				
			||||||
 | 
					  print(local.active_branch.name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global user
 | 
				
			||||||
 | 
					global paths
 | 
				
			||||||
 | 
					user = []
 | 
				
			||||||
 | 
					paths = []
 | 
				
			||||||
 | 
					config = 'gitloaded.json'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Load user JSON config
 | 
				
			||||||
 | 
					load_config()
 | 
				
			||||||
 | 
					print("Loaded user: %s\n" % user)
 | 
				
			||||||
 | 
					print("Loaded paths: %s\n" % paths)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for repo in paths:
 | 
				
			||||||
 | 
					  print("Loading path: %s" % paths[repo])
 | 
				
			||||||
 | 
					  load_repo(repo)
 | 
				
			||||||
 | 
					  print()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user