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

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Create pull request via API: destination repository cannot be changed? Edited

Hello,

I'm trying to create a PR via the API, where the source is my own fork, the the destination is the main repository. 

I get this error:

{"type": "error", "error": {"fields": {"destination": ["destination repository cannot be changed"]}, "message": "destination: destination repository cannot be changed"}}

 Here's my command:

curl \    
-X POST \
  -H "Content-Type: application/json" \
  -u username:app_password\
    https://bitbucket.org/api/2.0/repositories/username/repo-fork/pullrequests \
  -d '{      
"title": "test",
      
"description": "testing automated PR",
      
"source": {
        
"branch": {
          
"name": "test"
        
},
        
"repository": {
          
"full_name": "username/repo-fork"
        
}
      
},
      
"destination": {
        
"branch": {
         
  "name": "master"
        
},
        
"repository": {
          
"full_name": "username2/repo"
        
}
       
},
       
"reviewers": [ { "username": "user" } ],
       
"close_source_branch": false
    
}'

Why does this editor remove all my newline breaks when I paste code from my editor? Anyway... any ideas how do I make a PR from a fork to the main repository?

Thank you! 

1 answer

1 accepted

0 votes
Answer accepted

Hi @joel ,

When you create a PR from a fork to the main repo, this PR is created in the main repo (and the fork is specified in the source).

Therefore, the API URL in the call should be the one of the main repo. I believe the issue with your call is that the URL of the fork is used and then you attempt to change the destination repo in the data.

You can change the URL and omit the "repository" part in the destination, like this:

curl \ 
-X POST \
-H "Content-Type: application/json" \
-u username:app_password\
https://bitbucket.org/api/2.0/repositories/username2/repo/pullrequests \
-d '{
"title": "test",
"description": "testing automated PR",
"source": {
"branch": {
"name": "test"
},
"repository": {
"full_name": "username/repo-fork"
}
},
"destination": {
"branch": {
"name": "master"
}
},
"reviewers": [ { "username": "user" } ],
"close_source_branch": false
}'

Is this something that works for you?

Kind regards,
Theodora

Yes it works, thank you!

Like Theodora Boudale likes this

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Powering DevOps with Bitbucket Server & Data Center

Hi everyone, The Cloud team recently announced 12 new DevOps features that help developers ship better code, faster   ! While we’re all excited about the new improvements to Bitbucket ...

2,558 views 1 9
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you