Skip to main content

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​

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​

note

The web UI is under active development. Keep an eye out for updates in our latest releases.