I built an online editor for modifying some files. They need to be checked into git after they are edited. Unfortunately there is no direct way of setting the username and password for the git repository. Instead you need to use http authentication, and put the username and password into the URL of the repository. This is just a little code snippet of what I needed to do to update the file. I left out the middle part updating the file, instead just put some junk code in to add a new line.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import git import urllib.parse # Set the variables we are going to need # These are completely made up, so won't run as written l_git_username = 'amyers' l_git_password = urllib.parse.quote('myP@$$W0rd') l_git_repo = 'https://git.balddba.com/scm/or/someproject.git' l_tmp_dir = '/tmp/gitproject/' l_file_to_update = tns_tmp_dir + 'pyfile.py' # insert the username and password, URL Encode any special characters l_git_repo = l_repo[:8] + l_git_username + ':' + l_git_password + '@' + l_repo[8:] # Clone the repository git.Repo.clone_from(l_git_repo, l_tmp_dir, env={'GIT_SSL_NO_VERIFY': '1'}) repo = git.Repo(l_tmp_dir) #Make some file modification with open(l_file_to_update, 'a') as f: f.write("This is a new line\n") # Commit the file back to the repository l_commit_message = 'File modified in python' repo.index.commit(l_commit_message) origin = repo.remote(name='origin') origin.push(env={'GIT_SSL_NO_VERIFY': '1'}) |
Recent Comments