How to Clone Repository using GitPython - repository

I am new to Python and Git. Found GitPython library to run Git commands using Python. I am trying to clone an already created private repository on Google Cloud to my local directory on Mac. My code is as follow:
repo = Repo.clone_from('https://source.developers.google.com/p/my-project/r/my-project--data', 'my-local-dir', no_checkout=True)
And I am getting following error:
git.exc.GitCommandError: Cmd('git') failed due to: exit code(128) cmdline: git clone --no-checkout -v https://source.developers.google.com/p/my-project/r/my-project-data /my-local-dir stderr: 'Cloning into '/my-local-dir'... fatal: could not read Username for 'https://source.developers.google.com': Device not configured
Please help.
Thanks in advance.

I was trying to the same thing, then I discoverd pygit2, and with it I was able to clone a repository using two lines.
How? First make sure you have installed pygit2 in your python environment. I did that using the following command line:
pip install pygit2
Here the two lines I mentioned above:
import pygit2
pygit2.clone_repository("https://github.com/libgit2/pygit2", "pygit2")

Related

Environment variables (zsh terminal) installed through npm on MacOS 12.4 Monterey - SOLVED

Background:
Dear Stackoverflow community. I recently switched from Windows to MacOS and am at a loss how to configure environment variables. Many of the previous questions asked here are about bash instead of zsh.
Goal:
I am trying to install an npm package globally. For instance:
npm install -g vercel
or any other package, and use it in my Visual Studio Code terminal (also zsh). If I want to deploy code I have to use 'npx vercel deploy' every time. I want to be able to use "vercel deploy" but instead I get:
zsh: command not found: vercel
What I tried so far:
Installing the package in zsh and visual studio code terminals (didn't work)
Setting the path equal on both VS and terminal: export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
I learned that you need to add environment variabels to a .zshrc file. I don't seem to have a zshrc file. When I do:
sudo ~/.zshrc
Password: XXXXXX
sudo: /Users/vincent/.zshrc: command not found
I am getting another error.
I read in the zsh man file that you should use $HOME/.zshrc instead. Again I am getting the same errors:
vincent#Vincents-MacBook-Air-2 ~ % $HOME/.zshrc
zsh: permission denied: /Users/vincent/.zshrc
vincent#Vincents-MacBook-Air-2 ~ % sudo $HOME/.zshrc
sudo: /Users/vincent/.zshrc: command not found
Update 1:
#slebetman Thank you for your explanation. When I open the terminal I go to home via "cd $HOME" which puts me in in the home directory. However there is no way for me to create a .zshrc file in that directory. Neither via touch or vs code. I am getting the following error: "Unable to write file '/home/.zshrc' (Unknown (FileSystemError): Error: ENOTSUP: operation not supported on socket, open '/home/.zshrc')"
Update 2:
I did manage to find the .zshrc file in visual studio code under /etc. I hope this will work. I was able to overwrite the file with Sudo and add environment variables to it.
Add this to the file .zshrc file under /etc and force overwrite it:
export vercel=/Users/vincent/.npm-global/bin/vercel
Screenshots below for those who will try in the future:
Image with .zshrc file layout
Final remarks:
I don't understand how it is so difficult to add environment variables on Mac while everything else is so easy.
I have read many different questions on stackoverflow, and I can't seem to solve it. Also since I am a newbie I am not allowed to comment on there so I post here in the hope that anyone can help me :)
Best,
Vincent
Note that when you do:
npx vercel deploy
Npm will execute vercel for you without installing it. It does that by temporarily downloading vercel. If you want to run vercel directly without using npx then simply don't use npx. Install it instead:
npm install -g vercel
The -g flag installs the module globally and if the module has a CLI it will be available globally as well (note that depending on your setup you may need admin/sudo privileges to use the -g flag). Now you can run vercel by simply typing:
vercel deploy
This works in all operating systems supported by node.js and npm. That means you can even do this in Windows. In fact I use npm to distribute my tools in a simple cross-platform way so I don't have to support multiple package managers like chocolatey (Windows), homebrew (Mac OS), deb (Debian based distros), rpm (Redhat based distros) etc. (npm does not require your software to be written in node.js - I have published packages on npm written in tcl and bash).

"Spawn unknown" error while using npm's OpenFin

I installed OpenFin-cli using npm on windows 10. After OpenFin was installed, I tried to test it using the command
openfin -l -u https://apple.com
on cmd. I get the following error:
I have:
Node version 6.11.2
Link to OpenFin documentation that I referred: https://openfin.co/documentation/getting-started/
Can you try deleting the %LOCALAPPDATA%/OpenFin directory & re-running or downloading the OpenFinRVM.exe as suggested in this github issue
You can also try just manually launching the RVM by invoking the .exe with --config=http://yourappjsonurl.json
I believe the asset wasn't fully retrieved

Getting started with realm ReactExample - Error no such file GCDWebServerRequest.m?

I ran across realm when researching options for an embedded database to use for my first react-native app.
Following the steps documented here:
https://realm.io/docs/react-native/latest/#examples
I entered the following commands:
git clone https://github.com/realm/realm-js.git
cd realm-js/examples/ReactExample
npm install
When I open ReactExample.xcodeproj and attempt to build:
clang: error: no such file or directory: '/Users/edward3/Documents/projects/react-native/realm/realm-js/vendor/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.m'
clang: error: no input files
What am I missing?
Never mind, I was missing git submodule update.
git clone https://github.com/realm/realm-js.git
git submodule update --init --recursive
cd realm-js/examples/ReactExample
npm install
I am excited about learning to use realm. The realm example, at first glance, seems simple to learn compared to react-native sqlite examples.
https://realm.io/news/introducing-realm-react-native/

What network protocols does luarocks install use?

I am running on a redhat box, behind a corporate firewall. I'm guessing that some of the protocols are getting blocked, but I'm a relative neophyte to git, and this is my first time ever using luarocks. It looks to me like luarocks is trying to use https:// so there should be no firewall issues.... But the error messages imply a firewall problem.
Here's what I know:
I do know that this git command works fine on my machine. git is able to clone the repository locally, and I can build luarocks from source.
git clone https://github.com/torch/luajit-rocks.git
But, this command fails:
luarocks install cwrap
Here is the output from the command
Installing https://raw.githubusercontent.com/torch/rocks/master/cwrap-scm-1.rockspec...
Using https://raw.githubusercontent.com/torch/rocks/master/cwrap-scm-1.rockspec... switching to 'build' mode
Initialized empty Git repository in /tmp/luarocks_cwrap-scm-1-8589/cwrap/.git/
github.com[0: 192.30.252.129]: errno=Connection timed out
LuaRocks uses LuaSocket and LuaSec when available to do HTTP and HTTPS, but apart from that it just defers to external commands, such as git.
You can run luarocks with the --verbose flag and it will output every external command it calls. You can then check what is the git command line it is calling, and try it directly from the command line. This should help to diagnose if any flag is causing problems.
As a workaround, you can force git to use https with the following command:
git config --global url.https://github.com/.insteadOf git://github.com/
Source: https://github.com/torch/rocks/issues/38

How to "repo init" on a disconnected system?

I have mirrored a repository with
repo init -u <uri of manifest> --mirror
repo sync
and copied it (by usb) to a system disconnected from the internet along with the repo script and the repo clone bundle repository from https://gerrit.googlesource.com/git-repo/clone.bundle.
I now want to create new client from the mirror, but when I run the command.
repo init -u <uri of manifest on mirror>
i get the following error.
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno -2] Name or service not known
So I have the clone.bundle but have no way to persuade repo to use it.
Any suggestions?
There is an option, that appears to be totaly undocumented on the internet for repo. It is --repo-url which allows you to overide where repo looks for the latest version of itself.
This is what I did:
I had the bundle saved in my home as git-repo-clone.bundle
repo init -u < uri of manifest on mirror > --repo-url ~/git-repo-clone.bundle
I found this out by reading the repo script itself, and thought I would share.
There is an option to ignore the clone bundle.
repo init -u <your-manifest-mirror-url> --no-clone-bundle