In docs written that we can access snippet via
```
curl --request GET \ --url 'https://api.bitbucket.org/2.0/snippets/{workspace}/{encoded_id}/files/{path}' \ --header 'Authorization: Bearer <access_token>'
```
However that not works with private repository.
Steps to reproduce:
* Create snippet in your workspace and make visble to you only
* try curl 'https://api.bitbucket.org/2.0/snippets/{workspace}/{encoded_id}/files/{path}' via your app/username(created via 'App password' in account)
* got 401, but try curl 'https://api.bitbucket.org/2.0/snippets/{workspace}/{encoded_id}/ is acessible
* make your snippet public
* try curl 'https://api.bitbucket.org/2.0/snippets/{workspace}/{encoded_id}/files/{path}' without user(it works)
Also strange thing that I'm able to retrieve snippet's raw file when specifying sha(https://api.bitbucket.org/2.0/snippets/{workspace}/{encoded_id}/{node_id}/files/{path}' ), but it strange, and will change every time. But goal is to use snippet in scripts
Hi @seanaty , Sorry still don't get, I already provided user. Will give you real examples:
This code works, returns 200, and content
```
# password created via 'App password' in account, here is just example of any user/pass combination
SNIPPET_AUTH=user:password
curl -L "https://bitbucket.org/api/2.0/snippets/<worksapce-id>/<encoded-id>/6d6fa27ad8606f5df7e41530811a910171e0bbf8/files/test" --user $SNIPPET_AUTH
```
This code returns 401, only difference is commit hash is absent. Use case for this, is that I want always get latest version of file.
```
SNIPPET_AUTH=user:password
curl -L "https://bitbucket.org/api/2.0/snippets/<worksapce-id>/<encoded-id>/files/test" --user $SNIPPET_AUTH
```
I have tested this with one of my own private snippets and it seems to work ok, e.g. this call gives me the latest version of my snippet:
curl -L https://api.bitbucket.org/2.0/snippets/<workspace-id>/<encoded-id>/files/mysnippet.txt --user username:app-password
For testing purposes, could you include your Bitbucket username and app-password in the curl command like in my example, instead of using the variable SNIPPET_AUTH you created?
Do you remember if the app password was created with permissions to read snippets?
Kind regards,
Theodora
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Theodora Boudale , created new account to share passwords, here is call, user/pass are real, should return `test`
curl -L https://api.bitbucket.org/2.0/snippets/<workspace-id>/<encoded-id>/files/test --user Password:<app-password>
returns 401 now.
You can play with it, login to bibucket with cred <email>/<password>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For security reasons, we cannot use other users' credentials, even if they're of a test account, but I think I may see the reason for the 401.
In the curl call you provided in your last reply, you are using
--user Password:<app-password>
However, Password is the Full name of this test Bitbucket account, not its username. The username of a Bitbucket account can be found here (after you log in), next to the field named "Username" (not the "Name"):
Can you check if the curl call works if you use the Username listed in the link above?
Just a heads up, I removed emails and app passwords from your replies, as well as the workspace ids, for privacy reasons.
Kind regards,
Theodora
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Theodora Boudale , in initial question I already used username, just missed it with temp repository
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
401 means that you are unauthenticated. The problem is with your authentication, as you guessed.
An app password is not a Bearer token, you still need to provide your Bitbucket username like this:
--user 'my-username:my-app-password'
I was curious about the --user param and checked to see what header curl was using with it and it looks like it does this:
authorization: Basic bXktdXNlcm5hbWU6bXktYXBwLXBhc3N3b3Jk
The value there is 'my-username:my-app-password' but base64-encoded.
Hope this helps!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.