0

We are using Bitbucket github and I am using their API to update an file like below

https://docs.atlassian.com/bitbucket-server/rest/5.7.0/bitbucket-rest.html#idm45568365784624

In case of updating the README.md, it works as expected

curl -X PUT -u username:password -F content=@README.md  -F 'message=Updated using file-edit REST API'
 -F branch=master -F  sourceCommitId=5636641a50b
  http://example.com/rest/api/latest/projects/PROJECT_1/repos/repo_1/browse/test/README.md

Updating the file in github repo works as expected but when I try to create the new file path like below

curl -X PUT -u username:password -F content=@README.md  -F 'message=Updated using file-edit REST API'
     -F branch=master -F  sourceCommitId=5636641a50b
      http://example.com/rest/api/latest/projects/PROJECT_1/repos/repo_1/browse/test/newfile.md

it fails with the error : NoSuchPathException

{
    "errors": [
        {
            "context": null,
            "message": "test/newfile.md could not be edited because the file has been deleted on the 4186264533e065bd10ad2baf307f5687afcb445c branch.",
            "exceptionName": "com.atlassian.bitbucket.content.NoSuchPathException"
        }
    ]
}

As per the documentation, It says both the update and create should work as expected but only UPDATE is working and CREATING A NEW FILE fails

branch: the branch on which the path should be modified or created

Anyhelp on this is appreciated!

torek
  • 448,244
  • 59
  • 642
  • 775
PraveenaR
  • 1
  • 1
  • 1
    Bitbucket is not GitHub; the Bitbucket API is not the GitHub API; neither of these is Git itself. Bitbucket and GItHub are *hosting sites* (with different APIs). I updated your tags, but when you mean Bitbucket, just say Bitbucket, not "Bitbucket GitHub". – torek Feb 02 '22 at 07:59

1 Answers1

0

For people running into this issue, you need to remove the sourceCommitId parameter for new files. Seems like the sourceCommitId is needed only for existing files.

That would be something like:

curl -X PUT -u username:password -F content=@README.md  -F 'message=Updated using file-edit REST API'
     -F branch=master -F
      http://example.com/rest/api/latest/projects/PROJECT_1/repos/repo_1/browse/test/newfile.md
Dr. Acula
  • 469
  • 6
  • 13