Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Bitbucket pipeline to Heroku fails "Push rejected, source repository is a shallow clone."

Marko Melko September 20, 2018

I have a pipeline to Heroku app cloud for nodejs based frontend app.

deploy2.jpg

 

Dont know how to fix this...

.yml file looks like this:

# This is a sample build configuration for JavaScript.
# Check our guides at https://confluence.atlassian.com/x/14UWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: node:10.5.0

pipelines:
default:
- step:
# set HEROKU_API_KEY and HEROKU_APP_NAME environment variables
# set clone `depth: full' as described here: https://confluence.atlassian.com/x/Y9-5Mw
name: Deploy Koneviesti frontend to Heroku
# deployment: test # set to test, staging or production
# trigger: manual # uncomment to have a manual step
script:
- git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master

 

The problem comes from pipeline run:

37s
git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master
<1s
+ git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master
remote:
remote: ! Push rejected, source repository is a shallow clone. Unshallow it with `git fetch --all --unshallow` and try pushing again.
remote:
To https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git
! [remote rejected] HEAD -> master (shallow update not allowed)
error: failed to push some refs to 'https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git'

4 answers

4 votes
Juha Karttunen December 6, 2018

Fixed same problem by adding
git filter-branch -- --all
before the git push

spola February 8, 2019

It's works!!!!!   

briansteck August 28, 2020

This worked for me as well.

 

Does this line need to stay in the pipeline.yml file or can it be removed? (not sure if it's a one-time fix or if it needs to be there long-term)

1 vote
peter.slavka May 10, 2022

By default git clone takes only last 50 commits, so if there is more changes in pipeline since last deploy, you should set to pipelines depth to full

 

clone:

    enabled: true

    depth: full

see https://support.atlassian.com/bitbucket-cloud/docs/configure-bitbucket-pipelinesyml/ in section `depth`

 

Jun jun Tomagan August 23, 2022

This works for me! Thanks!

0 votes
Christhoval Barba July 29, 2021

@rich @Marko Melko 

try my solution

- step:
script:
- apk add git openssh-client
- git remote add [name] <repo_url>
- git remote -v
- git pull
- git checkout [branch]
- git filter-branch -- --all
- git push -u sync [branch]

Work for me 

0 votes
Marko Melko September 20, 2018

I fixed this with clean repository and all worked very nicely.

GIT has goon to the "node" :)

When creating pipelines, remember to have fundamentals right. Then add pipeline setting and needed configurations for both ends. I know now this case, so remember to i.e. email me if have problems with heroku&bitbucket - marko.melko@live.com

Juha Karttunen December 6, 2018

Do you have idea what was the problem? I encountered this and don't want to clean the repo

rich March 8, 2019

@Marko Melko Can you share your final solution in .yml?

Like Matthew Palmer likes this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events