Approving a push
All pushes that flow through Git Proxy require an approval (authorisation). Until a push is approved, Git Proxy will block the commits from being sent to the upstream repository. To approve a push, you can use the REST API or web UI.
Using the REST API
Prerequisites
- Proxy and REST API are running (default behaviour)
- Proxy and REST API are running on
localhost:8000andlocalhost:8080, respectively - Intercepting a push instructions have been followed and you've reached Push via Git Proxy
curlis installed
Instructions
1. Find the tracking ID
Following on from Push via Git Proxy, you'll receive a unique URL:
http://localhost:8080/requests/0000000000000000000000000000000000000000__79b4d8953cbc324bcc1eb53d6412ff89666c241f
The ID for your push corresponds to the last part of the URL:
0000000000000000000000000000000000000000__79b4d8953cbc324bcc1eb53d6412ff89666c241f
2. Authenticate with the API
Use the default & auto-generated Git Proxy username & password credentials to obtain a cookie. The cookie value is saved to a file (git-proxy-cookie):
curl -H "Content-Type: application/json" -c git-proxy-cookie -X POST \
-d '{"username":"admin","password":"admin"}' http://localhost:8080/auth/login
3. Retrieve push with ID from database
Using the cookie generated, execute a GET request to confirm that your push with ID exists in the database:
curl -I -b ./git-proxy-cookie http://localhost:8080/api/v1/push/${ID}
You should receive a 200 OK in the response.
4. Approve the push with ID
Using the same cookie again, send a POST command to approve the push:
curl -b ./git-proxy-cookie \
-X POST http://localhost:8080/api/v1/push/${ID}/authorise
5. Re-push your code
Execute git push to send your approved code through Git Proxy to the upstream repository:
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 10 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 470 bytes | 470.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
Using the UI
The web UI is under active development. Keep an eye out for updates in our latest releases.