Add python test script for Git
This commit is contained in:
parent
840143eec5
commit
0a759c0d1f
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
|
@ -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…
Reference in New Issue