Skip to content

Latest commit

 

History

History
821 lines (527 loc) · 57 KB

SnippetsApi.md

File metadata and controls

821 lines (527 loc) · 57 KB

{{classname}}

All URIs are relative to https://api.bitbucket.org/2.0

Method HTTP request Description
SnippetsGet Get /snippets List snippets
SnippetsPost Post /snippets Create a snippet
SnippetsWorkspaceEncodedIdCommentsCommentIdDelete Delete /snippets/{workspace}/{encoded_id}/comments/{comment_id} Delete a comment on a snippet
SnippetsWorkspaceEncodedIdCommentsCommentIdGet Get /snippets/{workspace}/{encoded_id}/comments/{comment_id} Get a comment on a snippet
SnippetsWorkspaceEncodedIdCommentsCommentIdPut Put /snippets/{workspace}/{encoded_id}/comments/{comment_id} Update a comment on a snippet
SnippetsWorkspaceEncodedIdCommentsGet Get /snippets/{workspace}/{encoded_id}/comments List comments on a snippet
SnippetsWorkspaceEncodedIdCommentsPost Post /snippets/{workspace}/{encoded_id}/comments Create a comment on a snippet
SnippetsWorkspaceEncodedIdCommitsGet Get /snippets/{workspace}/{encoded_id}/commits List snippet changes
SnippetsWorkspaceEncodedIdCommitsRevisionGet Get /snippets/{workspace}/{encoded_id}/commits/{revision} Get a previous snippet change
SnippetsWorkspaceEncodedIdDelete Delete /snippets/{workspace}/{encoded_id} Delete a snippet
SnippetsWorkspaceEncodedIdFilesPathGet Get /snippets/{workspace}/{encoded_id}/files/{path} Get a snippet's raw file at HEAD
SnippetsWorkspaceEncodedIdGet Get /snippets/{workspace}/{encoded_id} Get a snippet
SnippetsWorkspaceEncodedIdNodeIdDelete Delete /snippets/{workspace}/{encoded_id}/{node_id} Delete a previous revision of a snippet
SnippetsWorkspaceEncodedIdNodeIdFilesPathGet Get /snippets/{workspace}/{encoded_id}/{node_id}/files/{path} Get a snippet's raw file
SnippetsWorkspaceEncodedIdNodeIdGet Get /snippets/{workspace}/{encoded_id}/{node_id} Get a previous revision of a snippet
SnippetsWorkspaceEncodedIdNodeIdPut Put /snippets/{workspace}/{encoded_id}/{node_id} Update a previous revision of a snippet
SnippetsWorkspaceEncodedIdPut Put /snippets/{workspace}/{encoded_id} Update a snippet
SnippetsWorkspaceEncodedIdRevisionDiffGet Get /snippets/{workspace}/{encoded_id}/{revision}/diff Get snippet changes between versions
SnippetsWorkspaceEncodedIdRevisionPatchGet Get /snippets/{workspace}/{encoded_id}/{revision}/patch Get snippet patch between versions
SnippetsWorkspaceEncodedIdWatchDelete Delete /snippets/{workspace}/{encoded_id}/watch Stop watching a snippet
SnippetsWorkspaceEncodedIdWatchGet Get /snippets/{workspace}/{encoded_id}/watch Check if the current user is watching a snippet
SnippetsWorkspaceEncodedIdWatchPut Put /snippets/{workspace}/{encoded_id}/watch Watch a snippet
SnippetsWorkspaceEncodedIdWatchersGet Get /snippets/{workspace}/{encoded_id}/watchers List users watching a snippet
SnippetsWorkspaceGet Get /snippets/{workspace} List snippets in a workspace
SnippetsWorkspacePost Post /snippets/{workspace} Create a snippet for a workspace

SnippetsGet

PaginatedSnippets SnippetsGet(ctx, optional) List snippets

Returns all snippets. Like pull requests, repositories and workspaces, the full set of snippets is defined by what the current user has access to. This includes all snippets owned by any of the workspaces the user is a member of, or snippets by other users that the current user is either watching or has collaborated on (for instance by commenting on it). To limit the set of returned snippets, apply the ?role=[owner|contributor|member] query parameter where the roles are defined as follows: * owner: all snippets owned by the current user * contributor: all snippets owned by, or watched by the current user * member: created in a workspaces or watched by the current user When no role is specified, all public snippets are returned, as well as all privately owned snippets watched or commented on. The returned response is a normal paginated JSON list. This endpoint only supports application/json responses and no multipart/form-data or multipart/related. As a result, it is not possible to include the file contents.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
optional *SnippetsApiSnippetsGetOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a SnippetsApiSnippetsGetOpts struct

Name Type Description Notes
role optional.String Filter down the result based on the authenticated user's role (`owner`, `contributor`, or `member`).
page optional.Int32 page

Return type

PaginatedSnippets

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsPost

Snippet SnippetsPost(ctx, body) Create a snippet

Creates a new snippet under the authenticated user's account. Snippets can contain multiple files. Both text and binary files are supported. The simplest way to create a new snippet from a local file: $ curl -u username:password -X POST https://api.bitbucket.org/2.0/snippets -F [email protected] Creating snippets through curl has a few limitations and so let's look at a more complicated scenario. Snippets are created with a multipart POST. Both multipart/form-data and multipart/related are supported. Both allow the creation of snippets with both meta data (title, etc), as well as multiple text and binary files. The main difference is that multipart/related can use rich encoding for the meta data (currently JSON). multipart/related (RFC-2387) ---------------------------- This is the most advanced and efficient way to create a paste. POST /2.0/snippets/evzijst HTTP/1.1 Content-Length: 1188 Content-Type: multipart/related; start="snippet"; boundary="===============1438169132528273974==" MIME-Version: 1.0 --===============1438169132528273974== Content-Type: application/json; charset="utf-8" MIME-Version: 1.0 Content-ID: snippet { "title": "My snippet", "is_private": true, "scm": "git", "files": { "foo.txt": {}, "image.png": {} } } --===============1438169132528273974== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-ID: "foo.txt" Content-Disposition: attachment; filename="foo.txt" foo --===============1438169132528273974== Content-Type: image/png MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-ID: "image.png" Content-Disposition: attachment; filename="image.png" iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAYAAAD+MdrbAAABD0lEQVR4Ae3VMUoDQRTG8ccUaW2m TKONFxArJYJamCvkCnZTaa+VnQdJSBFl2SMsLFrEWNjZBZs0JgiL/+KrhhVmJRbCLPx4O+/DT2TB cbblJxf+UWFVVRNsEGAtgvJxnLm2H+A5RQ93uIl+3632PZyl/skjfOn9Gvdwmlcw5aPUwimG+NT5 EnNN036IaZePUuIcK533NVfal7/5yjWeot2z9ta1cAczHEf7I+3J0ws9Cgx0fsOFpmlfwKcWPuBQ 73Oc4FHzBaZ8llq4q1mr5B2mOUCt815qYR8eB1hG2VJ7j35q4RofaH7IG+Xrf/PfJhfmwtfFYoIN AqxFUD6OMxcvkO+UfKfkOyXfKdsv/AYCHMLVkHAFWgAAAABJRU5ErkJggg== --===============1438169132528273974==-- The request contains multiple parts and is structured as follows. The first part is the JSON document that describes the snippet's properties or meta data. It either has to be the first part, or the request's Content-Type header must contain the start parameter to point to it. The remaining parts are the files of which there can be zero or more. Each file part should contain the Content-ID MIME header through which the JSON meta data's files element addresses it. The value should be the name of the file. Content-Disposition is an optional MIME header. The header's optional filename parameter can be used to specify the file name that Bitbucket should use when writing the file to disk. When present, filename takes precedence over the value of Content-ID. When the JSON body omits the files element, the remaining parts are not ignored. Instead, each file is added to the new snippet as if its name was explicitly linked (the use of the files elements is mandatory for some operations like deleting or renaming files). multipart/form-data ------------------- The use of JSON for the snippet's meta data is optional. Meta data can also be supplied as regular form fields in a more conventional multipart/form-data request: $ curl -X POST -u credentials https://api.bitbucket.org/2.0/snippets -F title="My snippet" -F [email protected] -F [email protected] POST /2.0/snippets HTTP/1.1 Content-Length: 951 Content-Type: multipart/form-data; boundary=----------------------------63a4b224c59f ------------------------------63a4b224c59f Content-Disposition: form-data; name="file"; filename="foo.txt" Content-Type: text/plain foo ------------------------------63a4b224c59f Content-Disposition: form-data; name="file"; filename="image.png" Content-Type: application/octet-stream ?PNG IHDR?1??I..... ------------------------------63a4b224c59f Content-Disposition: form-data; name="title" My snippet ------------------------------63a4b224c59f-- Here the meta data properties are included as flat, top-level form fields. The file attachments use the file field name. To attach multiple files, simply repeat the field. The advantage of multipart/form-data over multipart/related is that it can be easier to build clients. Essentially all properties are optional, title and files included. Sharing and Visibility ---------------------- Snippets can be either public (visible to anyone on Bitbucket, as well as anonymous users), or private (visible only to members of the workspace). This is controlled through the snippet's is_private element: * is_private=false -- everyone, including anonymous users can view the snippet * is_private=true -- only workspace members can view the snippet To create the snippet under a workspace, just append the workspace ID to the URL. See /2.0/snippets/{workspace}.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
body Snippet The new snippet object.

Return type

Snippet

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommentsCommentIdDelete

SnippetsWorkspaceEncodedIdCommentsCommentIdDelete(ctx, commentId, encodedId, workspace) Delete a comment on a snippet

Deletes a snippet comment. Comments can only be removed by the comment author, snippet creator, or workspace admin.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
commentId int32 The id of the comment.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommentsCommentIdGet

SnippetComment SnippetsWorkspaceEncodedIdCommentsCommentIdGet(ctx, commentId, encodedId, workspace) Get a comment on a snippet

Returns the specific snippet comment.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
commentId int32 The id of the comment.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

SnippetComment

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommentsCommentIdPut

SnippetComment SnippetsWorkspaceEncodedIdCommentsCommentIdPut(ctx, body, commentId, encodedId, workspace) Update a comment on a snippet

Updates a comment. The only required field in the body is content.raw. Comments can only be updated by their author.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
body SnippetComment The contents to update the comment to.
commentId int32 The id of the comment.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

SnippetComment

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommentsGet

PaginatedSnippetComments SnippetsWorkspaceEncodedIdCommentsGet(ctx, encodedId, workspace, optional) List comments on a snippet

Used to retrieve a paginated list of all comments for a specific snippet. This resource works identical to commit and pull request comments. The default sorting is oldest to newest and can be overridden with the sort query parameter.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.
optional *SnippetsApiSnippetsWorkspaceEncodedIdCommentsGetOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a SnippetsApiSnippetsWorkspaceEncodedIdCommentsGetOpts struct

Name Type Description Notes

page | optional.Int32| page |

Return type

PaginatedSnippetComments

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommentsPost

SnippetComment SnippetsWorkspaceEncodedIdCommentsPost(ctx, body, encodedId, workspace) Create a comment on a snippet

Creates a new comment. The only required field in the body is content.raw. To create a threaded reply to an existing comment, include parent.id.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
body SnippetComment The contents of the new comment.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

SnippetComment

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommitsGet

PaginatedSnippetCommit SnippetsWorkspaceEncodedIdCommitsGet(ctx, encodedId, workspace, optional) List snippet changes

Returns the changes (commits) made on this snippet.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.
optional *SnippetsApiSnippetsWorkspaceEncodedIdCommitsGetOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a SnippetsApiSnippetsWorkspaceEncodedIdCommitsGetOpts struct

Name Type Description Notes

page | optional.Int32| page |

Return type

PaginatedSnippetCommit

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdCommitsRevisionGet

SnippetCommit SnippetsWorkspaceEncodedIdCommitsRevisionGet(ctx, encodedId, revision, workspace) Get a previous snippet change

Returns the changes made on this snippet in this commit.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
revision string The commit's SHA1.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

SnippetCommit

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdDelete

SnippetsWorkspaceEncodedIdDelete(ctx, encodedId, workspace) Delete a snippet

Deletes a snippet and returns an empty response.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdFilesPathGet

SnippetsWorkspaceEncodedIdFilesPathGet(ctx, encodedId, path, workspace) Get a snippet's raw file at HEAD

Convenience resource for getting to a snippet's raw files without the need for first having to retrieve the snippet itself and having to pull out the versioned file links.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
path string Path to the file.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdGet

Snippet SnippetsWorkspaceEncodedIdGet(ctx, encodedId, workspace) Get a snippet

Retrieves a single snippet. Snippets support multiple content types: * application/json * multipart/related * multipart/form-data application/json ---------------- The default content type of the response is application/json. Since JSON is always utf-8, it cannot reliably contain file contents for files that are not text. Therefore, JSON snippet documents only contain the filename and links to the file contents. This means that in order to retrieve all parts of a snippet, N+1 requests need to be made (where N is the number of files in the snippet). multipart/related ----------------- To retrieve an entire snippet in a single response, use the Accept: multipart/related HTTP request header. $ curl -H "Accept: multipart/related" https://api.bitbucket.org/2.0/snippets/evzijst/1 Response: HTTP/1.1 200 OK Content-Length: 2214 Content-Type: multipart/related; start="snippet"; boundary="===============1438169132528273974==" MIME-Version: 1.0 --===============1438169132528273974== Content-Type: application/json; charset="utf-8" MIME-Version: 1.0 Content-ID: snippet { "links": { "self": { "href": "https://api.bitbucket.org/2.0/snippets/evzijst/kypj\" }, "html": { "href": "https://bitbucket.org/snippets/evzijst/kypj\" }, "comments": { "href": "https://api.bitbucket.org/2.0/snippets/evzijst/kypj/comments\" }, "watchers": { "href": "https://api.bitbucket.org/2.0/snippets/evzijst/kypj/watchers\" }, "commits": { "href": "https://api.bitbucket.org/2.0/snippets/evzijst/kypj/commits\" } }, "id": kypj, "title": "My snippet", "created_on": "2014-12-29T22:22:04.790331+00:00", "updated_on": "2014-12-29T22:22:04.790331+00:00", "is_private": false, "files": { "foo.txt": { "links": { "self": { "href": "https://api.bitbucket.org/2.0/snippets/evzijst/kypj/files/367ab19/foo.txt\" }, "html": { "href": "https://bitbucket.org/snippets/evzijst/kypj#file-foo.txt\" } } }, "image.png": { "links": { "self": { "href": "https://api.bitbucket.org/2.0/snippets/evzijst/kypj/files/367ab19/image.png\" }, "html": { "href": "https://bitbucket.org/snippets/evzijst/kypj#file-image.png\" } } } ], "owner": { "username": "evzijst", "nickname": "evzijst", "display_name": "Erik van Zijst", "uuid": "{d301aafa-d676-4ee0-88be-962be7417567}", "links": { "self": { "href": "https://api.bitbucket.org/2.0/users/evzijst\" }, "html": { "href": "https://bitbucket.org/evzijst\" }, "avatar": { "href": "https://bitbucket-staging-assetroot.s3.amazonaws.com/c/photos/2013/Jul/31/erik-avatar-725122544-0_avatar.png\" } } }, "creator": { "username": "evzijst", "nickname": "evzijst", "display_name": "Erik van Zijst", "uuid": "{d301aafa-d676-4ee0-88be-962be7417567}", "links": { "self": { "href": "https://api.bitbucket.org/2.0/users/evzijst\" }, "html": { "href": "https://bitbucket.org/evzijst\" }, "avatar": { "href": "https://bitbucket-staging-assetroot.s3.amazonaws.com/c/photos/2013/Jul/31/erik-avatar-725122544-0_avatar.png\" } } } } --===============1438169132528273974== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-ID: "foo.txt" Content-Disposition: attachment; filename="foo.txt" foo --===============1438169132528273974== Content-Type: image/png MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-ID: "image.png" Content-Disposition: attachment; filename="image.png" iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAYAAAD+MdrbAAABD0lEQVR4Ae3VMUoDQRTG8ccUaW2m TKONFxArJYJamCvkCnZTaa+VnQdJSBFl2SMsLFrEWNjZBZs0JgiL/+KrhhVmJRbCLPx4O+/DT2TB cbblJxf+UWFVVRNsEGAtgvJxnLm2H+A5RQ93uIl+3632PZyl/skjfOn9Gvdwmlcw5aPUwimG+NT5 EnNN036IaZePUuIcK533NVfal7/5yjWeot2z9ta1cAczHEf7I+3J0ws9Cgx0fsOFpmlfwKcWPuBQ 73Oc4FHzBaZ8llq4q1mr5B2mOUCt815qYR8eB1hG2VJ7j35q4RofaH7IG+Xrf/PfJhfmwtfFYoIN AqxFUD6OMxcvkO+UfKfkOyXfKdsv/AYCHMLVkHAFWgAAAABJRU5ErkJggg== --===============1438169132528273974==-- multipart/form-data ------------------- As with creating new snippets, multipart/form-data can be used as an alternative to multipart/related. However, the inherently flat structure of form-data means that only basic, root-level properties can be returned, while nested elements like links are omitted: $ curl -H "Accept: multipart/form-data" https://api.bitbucket.org/2.0/snippets/evzijst/kypj Response: HTTP/1.1 200 OK Content-Length: 951 Content-Type: multipart/form-data; boundary=----------------------------63a4b224c59f ------------------------------63a4b224c59f Content-Disposition: form-data; name="title" Content-Type: text/plain; charset="utf-8" My snippet ------------------------------63a4b224c59f-- Content-Disposition: attachment; name="file"; filename="foo.txt" Content-Type: text/plain foo ------------------------------63a4b224c59f Content-Disposition: attachment; name="file"; filename="image.png" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAYAAAD+MdrbAAABD0lEQVR4Ae3VMUoDQRTG8ccUaW2m TKONFxArJYJamCvkCnZTaa+VnQdJSBFl2SMsLFrEWNjZBZs0JgiL/+KrhhVmJRbCLPx4O+/DT2TB cbblJxf+UWFVVRNsEGAtgvJxnLm2H+A5RQ93uIl+3632PZyl/skjfOn9Gvdwmlcw5aPUwimG+NT5 EnNN036IaZePUuIcK533NVfal7/5yjWeot2z9ta1cAczHEf7I+3J0ws9Cgx0fsOFpmlfwKcWPuBQ 73Oc4FHzBaZ8llq4q1mr5B2mOUCt815qYR8eB1hG2VJ7j35q4RofaH7IG+Xrf/PfJhfmwtfFYoIN AqxFUD6OMxcvkO+UfKfkOyXfKdsv/AYCHMLVkHAFWgAAAABJRU5ErkJggg== ------------------------------5957323a6b76--

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

Snippet

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json, multipart/related, multipart/form-data

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdNodeIdDelete

SnippetsWorkspaceEncodedIdNodeIdDelete(ctx, encodedId, nodeId, workspace) Delete a previous revision of a snippet

Deletes the snippet. Note that this only works for versioned URLs that point to the latest commit of the snippet. Pointing to an older commit results in a 405 status code. To delete a snippet, regardless of whether or not concurrent changes are being made to it, use DELETE /snippets/{encoded_id} instead.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
nodeId string A commit revision (SHA1).
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdNodeIdFilesPathGet

SnippetsWorkspaceEncodedIdNodeIdFilesPathGet(ctx, encodedId, nodeId, path, workspace) Get a snippet's raw file

Retrieves the raw contents of a specific file in the snippet. The Content-Disposition header will be "attachment" to avoid issues with malevolent executable files. The file's mime type is derived from its filename and returned in the Content-Type header. Note that for text files, no character encoding is included as part of the content type.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
nodeId string A commit revision (SHA1).
path string Path to the file.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdNodeIdGet

Snippet SnippetsWorkspaceEncodedIdNodeIdGet(ctx, encodedId, nodeId, workspace) Get a previous revision of a snippet

Identical to GET /snippets/encoded_id, except that this endpoint can be used to retrieve the contents of the snippet as it was at an older revision, while /snippets/encoded_id always returns the snippet's current revision. Note that only the snippet's file contents are versioned, not its meta data properties like the title. Other than that, the two endpoints are identical in behavior.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
nodeId string A commit revision (SHA1).
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

Snippet

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json, multipart/related, multipart/form-data

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdNodeIdPut

Snippet SnippetsWorkspaceEncodedIdNodeIdPut(ctx, encodedId, nodeId, workspace) Update a previous revision of a snippet

Identical to UPDATE /snippets/encoded_id, except that this endpoint takes an explicit commit revision. Only the snippet's "HEAD"/"tip" (most recent) version can be updated and requests on all other, older revisions fail by returning a 405 status. Usage of this endpoint over the unrestricted /snippets/encoded_id could be desired if the caller wants to be sure no concurrent modifications have taken place between the moment of the UPDATE request and the original GET. This can be considered a so-called "Compare And Swap", or CAS operation. Other than that, the two endpoints are identical in behavior.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
nodeId string A commit revision (SHA1).
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

Snippet

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json, multipart/related, multipart/form-data

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdPut

Snippet SnippetsWorkspaceEncodedIdPut(ctx, encodedId, workspace) Update a snippet

Used to update a snippet. Use this to add and delete files and to change a snippet's title. To update a snippet, one can either PUT a full snapshot, or only the parts that need to be changed. The contract for PUT on this API is that properties missing from the request remain untouched so that snippets can be efficiently manipulated with differential payloads. To delete a property (e.g. the title, or a file), include its name in the request, but omit its value (use null). As in Git, explicit renaming of files is not supported. Instead, to rename a file, delete it and add it again under another name. This can be done atomically in a single request. Rename detection is left to the SCM. PUT supports three different content types for both request and response bodies: * application/json * multipart/related * multipart/form-data The content type used for the request body can be different than that used for the response. Content types are specified using standard HTTP headers. Use the Content-Type and Accept headers to select the desired request and response format. application/json ---------------- As with creation and retrieval, the content type determines what properties can be manipulated. application/json does not support file contents and is therefore limited to a snippet's meta data. To update the title, without changing any of its files: $ curl -X POST -H "Content-Type: application/json" https://api.bitbucket.org/2.0/snippets/evzijst/kypj -d '{"title": "Updated title"}' To delete the title: $ curl -X POST -H "Content-Type: application/json" https://api.bitbucket.org/2.0/snippets/evzijst/kypj -d '{"title": null}' Not all parts of a snippet can be manipulated. The owner and creator for instance are immutable. multipart/related ----------------- multipart/related can be used to manipulate all of a snippet's properties. The body is identical to a POST. properties omitted from the request are left unchanged. Since the start part contains JSON, the mechanism for manipulating the snippet's meta data is identical to application/json requests. To update one of a snippet's file contents, while also changing its title: PUT /2.0/snippets/evzijst/kypj HTTP/1.1 Content-Length: 288 Content-Type: multipart/related; start="snippet"; boundary="===============1438169132528273974==" MIME-Version: 1.0 --===============1438169132528273974== Content-Type: application/json; charset="utf-8" MIME-Version: 1.0 Content-ID: snippet { "title": "My updated snippet", "files": { "foo.txt": {} } } --===============1438169132528273974== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-ID: "foo.txt" Content-Disposition: attachment; filename="foo.txt" Updated file contents. --===============1438169132528273974==-- Here only the parts that are changed are included in the body. The other files remain untouched. Note the use of the files list in the JSON part. This list contains the files that are being manipulated. This list should have corresponding multiparts in the request that contain the new contents of these files. If a filename in the files list does not have a corresponding part, it will be deleted from the snippet, as shown below: PUT /2.0/snippets/evzijst/kypj HTTP/1.1 Content-Length: 188 Content-Type: multipart/related; start="snippet"; boundary="===============1438169132528273974==" MIME-Version: 1.0 --===============1438169132528273974== Content-Type: application/json; charset="utf-8" MIME-Version: 1.0 Content-ID: snippet { "files": { "image.png": {} } } --===============1438169132528273974==-- To simulate a rename, delete a file and add the same file under another name: PUT /2.0/snippets/evzijst/kypj HTTP/1.1 Content-Length: 212 Content-Type: multipart/related; start="snippet"; boundary="===============1438169132528273974==" MIME-Version: 1.0 --===============1438169132528273974== Content-Type: application/json; charset="utf-8" MIME-Version: 1.0 Content-ID: snippet { "files": { "foo.txt": {}, "bar.txt": {} } } --===============1438169132528273974== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-ID: "bar.txt" Content-Disposition: attachment; filename="bar.txt" foo --===============1438169132528273974==-- multipart/form-data ----------------- Again, one can also use multipart/form-data to manipulate file contents and meta data atomically. $ curl -X PUT http://localhost:12345/2.0/snippets/evzijst/kypj -F title="My updated snippet" -F [email protected] PUT /2.0/snippets/evzijst/kypj HTTP/1.1 Content-Length: 351 Content-Type: multipart/form-data; boundary=----------------------------63a4b224c59f ------------------------------63a4b224c59f Content-Disposition: form-data; name="file"; filename="foo.txt" Content-Type: text/plain foo ------------------------------63a4b224c59f Content-Disposition: form-data; name="title" My updated snippet ------------------------------63a4b224c59f To delete a file, omit its contents while including its name in the files field: $ curl -X PUT https://api.bitbucket.org/2.0/snippets/evzijst/kypj -F files=image.png PUT /2.0/snippets/evzijst/kypj HTTP/1.1 Content-Length: 149 Content-Type: multipart/form-data; boundary=----------------------------ef8871065a86 ------------------------------ef8871065a86 Content-Disposition: form-data; name="files" image.png ------------------------------ef8871065a86-- The explicit use of the files element in multipart/related and multipart/form-data is only required when deleting files. The default mode of operation is for file parts to be processed, regardless of whether or not they are listed in files, as a convenience to the client.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

Snippet

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json, multipart/related, multipart/form-data

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdRevisionDiffGet

SnippetsWorkspaceEncodedIdRevisionDiffGet(ctx, encodedId, revision, workspace, optional) Get snippet changes between versions

Returns the diff of the specified commit against its first parent. Note that this resource is different in functionality from the patch resource. The differences between a diff and a patch are: * patches have a commit header with the username, message, etc * diffs support the optional path=foo/bar.py query param to filter the diff to just that one file diff (not supported for patches) * for a merge, the diff will show the diff between the merge commit and its first parent (identical to how PRs work), while patch returns a response containing separate patches for each commit on the second parent's ancestry, up to the oldest common ancestor (identical to its reachability). Note that the character encoding of the contents of the diff is unspecified as Git does not track this, making it hard for Bitbucket to reliably determine this.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
revision string A revspec expression. This can simply be a commit SHA1, a ref name, or a compare expression like `staging..production`.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.
optional *SnippetsApiSnippetsWorkspaceEncodedIdRevisionDiffGetOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a SnippetsApiSnippetsWorkspaceEncodedIdRevisionDiffGetOpts struct

Name Type Description Notes

path | optional.String| When used, only one the diff of the specified file will be returned. |

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdRevisionPatchGet

SnippetsWorkspaceEncodedIdRevisionPatchGet(ctx, encodedId, revision, workspace) Get snippet patch between versions

Returns the patch of the specified commit against its first parent. Note that this resource is different in functionality from the diff resource. The differences between a diff and a patch are: * patches have a commit header with the username, message, etc * diffs support the optional path=foo/bar.py query param to filter the diff to just that one file diff (not supported for patches) * for a merge, the diff will show the diff between the merge commit and its first parent (identical to how PRs work), while patch returns a response containing separate patches for each commit on the second parent's ancestry, up to the oldest common ancestor (identical to its reachability). Note that the character encoding of the contents of the patch is unspecified as Git does not track this, making it hard for Bitbucket to reliably determine this.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
revision string A revspec expression. This can simply be a commit SHA1, a ref name, or a compare expression like `staging..production`.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdWatchDelete

SnippetsWorkspaceEncodedIdWatchDelete(ctx, encodedId, workspace) Stop watching a snippet

Used to stop watching a specific snippet. Returns 204 (No Content) to indicate success.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdWatchGet

SnippetsWorkspaceEncodedIdWatchGet(ctx, encodedId, workspace) Check if the current user is watching a snippet

Used to check if the current user is watching a specific snippet. Returns 204 (No Content) if the user is watching the snippet and 404 if not. Hitting this endpoint anonymously always returns a 404.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdWatchPut

SnippetsWorkspaceEncodedIdWatchPut(ctx, encodedId, workspace) Watch a snippet

Used to start watching a specific snippet. Returns 204 (No Content).

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

(empty response body)

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceEncodedIdWatchersGet

PaginatedAccounts SnippetsWorkspaceEncodedIdWatchersGet(ctx, encodedId, workspace, optional) List users watching a snippet

Returns a paginated list of all users watching a specific snippet.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
encodedId string The snippet id.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.
optional *SnippetsApiSnippetsWorkspaceEncodedIdWatchersGetOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a SnippetsApiSnippetsWorkspaceEncodedIdWatchersGetOpts struct

Name Type Description Notes

page | optional.Int32| page |

Return type

PaginatedAccounts

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspaceGet

PaginatedSnippets SnippetsWorkspaceGet(ctx, workspace, optional) List snippets in a workspace

Identical to /snippets, except that the result is further filtered by the snippet owner and only those that are owned by {workspace} are returned.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.
optional *SnippetsApiSnippetsWorkspaceGetOpts optional parameters nil if no parameters

Optional Parameters

Optional parameters are passed through a pointer to a SnippetsApiSnippetsWorkspaceGetOpts struct

Name Type Description Notes

role | optional.String| Filter down the result based on the authenticated user's role (`owner`, `contributor`, or `member`). | page | optional.Int32| page |

Return type

PaginatedSnippets

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

SnippetsWorkspacePost

Snippet SnippetsWorkspacePost(ctx, body, workspace) Create a snippet for a workspace

Identical to /snippets, except that the new snippet will be created under the workspace specified in the path parameter {workspace}.

Required Parameters

Name Type Description Notes
ctx context.Context context for authentication, logging, cancellation, deadlines, tracing, etc.
body Snippet The new snippet object.
workspace string This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example: `{workspace UUID}`.

Return type

Snippet

Authorization

api_key, basic, oauth2

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]