6.0.0 • Published 5 years ago

@datafire/bitbucket v6.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

@datafire/bitbucket

Client library for Bitbucket

Installation and Usage

npm install --save @datafire/bitbucket
let bitbucket = require('@datafire/bitbucket').create({
  api_key: "",
  username: "",
  password: "",
  access_token: "",
  refresh_token: "",
  client_id: "",
  client_secret: "",
  redirect_uri: ""
});

.then(data => {
  console.log(data);
});

Description

Code against the Bitbucket API to automate simple tasks, embed Bitbucket data into your own site, build mobile or desktop apps, or even add custom UI add-ons into Bitbucket itself using the Connect framework.

Actions

oauthCallback

Exchange the code passed to your redirect URI for an access_token

bitbucket.oauthCallback({
  "code": ""
}, context)

Input

  • input object
    • code required string

Output

  • output object
    • access_token string
    • refresh_token string
    • token_type string
    • scope string
    • expiration string

oauthRefresh

Exchange a refresh_token for an access_token

bitbucket.oauthRefresh(null, context)

Input

This action has no parameters

Output

  • output object
    • access_token string
    • refresh_token string
    • token_type string
    • scope string
    • expiration string

addon.delete

bitbucket.addon.delete(null, context)

Input

This action has no parameters

Output

addon.put

bitbucket.addon.put(null, context)

Input

This action has no parameters

Output

addon.linkers.get

bitbucket.addon.linkers.get(null, context)

Input

This action has no parameters

Output

addon.linkers.linker_key.get

bitbucket.addon.linkers.linker_key.get({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

addon.linkers.linker_key.values.delete

bitbucket.addon.linkers.linker_key.values.delete({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

addon.linkers.linker_key.values.get

bitbucket.addon.linkers.linker_key.values.get({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

addon.linkers.linker_key.values.post

bitbucket.addon.linkers.linker_key.values.post({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

addon.linkers.linker_key.values.put

bitbucket.addon.linkers.linker_key.values.put({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

addon.linkers.linker_key.values.delete

bitbucket.addon.linkers.linker_key.values.delete({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

addon.linkers.linker_key.values.get

bitbucket.addon.linkers.linker_key.values.get({
  "linker_key": ""
}, context)

Input

  • input object
    • linker_key required string

Output

hook_events.get

Returns the webhook resource or subject types on which webhooks can be registered.

Each resource/subject type contains an events link that returns the paginated list of specific events each individual subject type can emit.

This endpoint is publicly accessible and does not require authentication or scopes.

Example:

$ curl https://api.bitbucket.org/2.0/hook_events

{
    "repository": {
        "links": {
            "events": {
                "href": "https://api.bitbucket.org/2.0/hook_events/repository"
            }
        }
    },
    "team": {
        "links": {
            "events": {
                "href": "https://api.bitbucket.org/2.0/hook_events/team"
            }
        }
    },
    "user": {
        "links": {
            "events": {
                "href": "https://api.bitbucket.org/2.0/hook_events/user"
            }
        }
    }
}
bitbucket.hook_events.get(null, context)

Input

This action has no parameters

Output

hook_events.subject_type.get

Returns a paginated list of all valid webhook events for the specified entity.

This is public data that does not require any scopes or authentication.

Example:

NOTE: The following example is a truncated response object for the team subject_type. We return the same structure for the other subject_type objects.

$ curl https://api.bitbucket.org/2.0/hook_events/team
{
    "page": 1,
    "pagelen": 30,
    "size": 21,
    "values": [
        {
            "category": "Repository",
            "description": "Whenever a repository push occurs",
            "event": "repo:push",
            "label": "Push"
        },
        {
            "category": "Repository",
            "description": "Whenever a repository fork occurs",
            "event": "repo:fork",
            "label": "Fork"
        },
        ...
        {
            "category": "Repository",
            "description": "Whenever a repository import occurs",
            "event": "repo:imported",
            "label": "Import"
        }
    ]
}
bitbucket.hook_events.subject_type.get({
  "subject_type": ""
}, context)

Input

  • input object
    • subject_type required string

Output

repositories.get

Returns a paginated list of all public repositories.

This endpoint also supports filtering and sorting of the results. See filtering and sorting for more details.

bitbucket.repositories.get({}, context)

Input

  • input object
    • after string: Filter the results to include only repositories create on or

Output

repositories.username.get

Returns a paginated list of all repositories owned by the specified account or UUID.

The result can be narrowed down based on the authenticated user's role.

E.g. with ?role=contributor, only those repositories that the authenticated user has write access to are returned (this includes any repo the user is an admin on, as that implies write access).

This endpoint also supports filtering and sorting of the results. See filtering and sorting for more details.

bitbucket.repositories.username.get({
  "username": ""
}, context)

Input

  • input object
    • role string (values: admin, contributor, member, owner):
    • username required string

Output

repositories.username.repo_slug.delete

Deletes the repository. This is an irreversible operation.

This does not affect its forks.

bitbucket.repositories.username.repo_slug.delete({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.get

Returns the object describing this repository.

bitbucket.repositories.username.repo_slug.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.post

Creates a new repository.

Note: In order to set the project for the newly created repository, pass in either the project key or the project UUID as part of the request body as shown in the examples below:

$ curl -X POST -H "Content-Type: application/json" -d '{
    "scm": "git",
    "project": {
        "key": "MARS"
    }
}' https://api.bitbucket.org/2.0/repositories/teamsinspace/hablanding

or

$ curl -X POST -H "Content-Type: application/json" -d '{
    "scm": "git",
    "project": {
        "key": "{ba516952-992a-4c2d-acbd-17d502922f96}"
    }
}' https://api.bitbucket.org/2.0/repositories/teamsinspace/hablanding

The project must only be assigned for repositories belonging to a team. If the repository owner is a team and the project is not provided, the repository is automatically assigned to the oldest project in the team.

Note: In the examples above, the username teamsinspace, and/or the repository name hablanding can be replaced by UUIDs.

bitbucket.repositories.username.repo_slug.post({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body repository
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.put

Since this endpoint can be used to both update and to create a repository, the request body depends on the intent.

Creation

See the POST documentation for the repository endpoint for an example of the request body.

Update

Note: Changing the name of the repository will cause the location to be changed. This is because the URL of the repo is derived from the name (a process called slugification). In such a scenario, it is possible for the request to fail if the newly created slug conflicts with an existing repository's slug. But if there is no conflict, the new location will be returned in the Location header of the response.

bitbucket.repositories.username.repo_slug.put({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body repository
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.branch_restrictions.get

Returns a paginated list of all branch restrictions on the repository.

bitbucket.repositories.username.repo_slug.branch_restrictions.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.branch_restrictions.post

Creates a new branch restriction rule for a repository.

kind describes what will be restricted. Allowed values are: push, force, delete, and restrict_merges.

Different kinds of branch restrictions have different requirements:

  • push and restrict_merges require users and groups to be specified. Empty lists are allowed, in which case permission is denied for everybody.
  • force can not be specified in a Mercurial repository.

pattern is used to determine which branches will be restricted.

A '*' in pattern will expand to match zero or more characters, and every other character matches itself. For example, 'foo*' will match 'foo' and 'foobar', but not 'barfoo'. '*' will match all branches.

users and groups are lists of user names and group names.

kind and pattern must be unique within a repository; adding new users or groups to an existing restriction should be done via PUT.

Note that branch restrictions with overlapping patterns are allowed, but the resulting behavior may be surprising.

bitbucket.repositories.username.repo_slug.branch_restrictions.post({
  "_body": null,
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object

Output

repositories.username.repo_slug.branch_restrictions.id.delete

Deletes an existing branch restriction rule.

bitbucket.repositories.username.repo_slug.branch_restrictions.id.delete({
  "username": "",
  "id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • id required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.branch_restrictions.id.get

Returns a specific branch restriction rule.

bitbucket.repositories.username.repo_slug.branch_restrictions.id.get({
  "username": "",
  "id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • id required string
    • repo_slug required string

Output

repositories.username.repo_slug.branch_restrictions.id.put

Updates an existing branch restriction rule.

Fields not present in the request body are ignored.

See POST for details.

bitbucket.repositories.username.repo_slug.branch_restrictions.id.put({
  "_body": null,
  "username": "",
  "id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body required branchrestriction
    • username required string
    • id required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.node.approve.delete

Redact the authenticated user's approval of the specified commit.

This operation is only available to users that have explicit access to the repository. In contrast, just the fact that a repository is publicly accessible to users does not give them the ability to approve commits.

bitbucket.repositories.username.repo_slug.commit.node.approve.delete({
  "username": "",
  "node": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • node required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.commit.node.approve.post

Approve the specified commit as the authenticated user.

This operation is only available to users that have explicit access to the repository. In contrast, just the fact that a repository is publicly accessible to users does not give them the ability to approve commits.

bitbucket.repositories.username.repo_slug.commit.node.approve.post({
  "username": "",
  "node": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • node required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.node.statuses.get

Returns all statuses (e.g. build results) for a specific commit.

bitbucket.repositories.username.repo_slug.commit.node.statuses.get({
  "username": "",
  "node": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • node required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.node.statuses.build.post

Creates a new build status against the specified commit.

If the specified key already exists, the existing status object will be overwritten.

When creating a new commit status, you can use a URI template for the URL. Templates are URLs that contain variable names that Bitbucket will evaluate at runtime whenever the URL is displayed anywhere similar to parameter substitution in Bitbucket Connect. For example, one could use https://foo.com/builds/{repository.full_name} which Bitbucket will turn into https://foo.com/builds/foo/bar at render time. The context variables available are repository and commit.

bitbucket.repositories.username.repo_slug.commit.node.statuses.build.post({
  "username": "",
  "node": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • node required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.node.statuses.build.key.get

Returns the specified build status for a commit.

bitbucket.repositories.username.repo_slug.commit.node.statuses.build.key.get({
  "username": "",
  "node": "",
  "key": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • node required string
    • key required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.node.statuses.build.key.put

Used to update the current status of a build status object on the specific commit.

This operation can also be used to change other properties of the build status:

  • state
  • name
  • description
  • url
  • refname

The key cannot be changed.

bitbucket.repositories.username.repo_slug.commit.node.statuses.build.key.put({
  "username": "",
  "node": "",
  "key": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body commitstatus
    • username required string
    • node required string
    • key required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.revision.get

Returns the specified commit.

bitbucket.repositories.username.repo_slug.commit.revision.get({
  "username": "",
  "revision": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • revision required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.sha.comments.get

Returns the commit's comments.

This includes both global and inline comments.

The default sorting is oldest to newest and can be overridden with the sort query parameter.

bitbucket.repositories.username.repo_slug.commit.sha.comments.get({
  "username": "",
  "sha": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • sha required string
    • repo_slug required string

Output

repositories.username.repo_slug.commit.sha.comments.comment_id.get

Returns the specified commit comment.

bitbucket.repositories.username.repo_slug.commit.sha.comments.comment_id.get({
  "username": "",
  "sha": "",
  "comment_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • sha required string
    • comment_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.commits.get

These are the repository's commits. They are paginated and returned in reverse chronological order, similar to the output of git log and hg log. Like these tools, the DAG can be filtered.

GET /repositories/{username}/{repo_slug}/commits/

Returns all commits in the repo in topological order (newest commit first). All branches and tags are included (similar to git log --all and hg log).

GET /repositories/{username}/{repo_slug}/commits/master

Returns all commits on rev master (similar to git log master, hg log master).

GET /repositories/{username}/{repo_slug}/commits/dev?exclude=master

Returns all commits on ref dev, except those that are reachable on master (similar to git log dev ^master).

GET /repositories/{username}/{repo_slug}/commits/?exclude=master

Returns all commits in the repo that are not on master (similar to git log --all ^master).

GET /repositories/{username}/{repo_slug}/commits/?include=foo&include=bar&exclude=fu&exclude=fubar

Returns all commits that are on refs foo or bar, but not on fu or fubar (similar to git log foo bar ^fu ^fubar).

Because the response could include a very large number of commits, it is paginated. Follow the 'next' link in the response to navigate to the next page of commits. As with other paginated resources, do not construct your own links.

When the include and exclude parameters are more than can fit in a query string, clients can use a x-www-form-urlencoded POST instead.

bitbucket.repositories.username.repo_slug.commits.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.commits.post

Identical to GET /repositories/{username}/{repo_slug}/commits, except that POST allows clients to place the include and exclude parameters in the request body to avoid URL length issues.

Note that this resource does NOT support new commit creation.

bitbucket.repositories.username.repo_slug.commits.post({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.commits.revision.get

These are the repository's commits. They are paginated and returned in reverse chronological order, similar to the output of git log and hg log. Like these tools, the DAG can be filtered.

GET /repositories/{username}/{repo_slug}/commits/

Returns all commits in the repo in topological order (newest commit first). All branches and tags are included (similar to git log --all and hg log).

GET /repositories/{username}/{repo_slug}/commits/master

Returns all commits on rev master (similar to git log master, hg log master).

GET /repositories/{username}/{repo_slug}/commits/dev?exclude=master

Returns all commits on ref dev, except those that are reachable on master (similar to git log dev ^master).

GET /repositories/{username}/{repo_slug}/commits/?exclude=master

Returns all commits in the repo that are not on master (similar to git log --all ^master).

GET /repositories/{username}/{repo_slug}/commits/?include=foo&include=bar&exclude=fu&exclude=fubar

Returns all commits that are on refs foo or bar, but not on fu or fubar (similar to git log foo bar ^fu ^fubar).

Because the response could include a very large number of commits, it is paginated. Follow the 'next' link in the response to navigate to the next page of commits. As with other paginated resources, do not construct your own links.

When the include and exclude parameters are more than can fit in a query string, clients can use a x-www-form-urlencoded POST instead.

bitbucket.repositories.username.repo_slug.commits.revision.get({
  "username": "",
  "revision": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • revision required string
    • repo_slug required string

Output

repositories.username.repo_slug.commits.revision.post

Identical to GET /repositories/{username}/{repo_slug}/commits, except that POST allows clients to place the include and exclude parameters in the request body to avoid URL length issues.

Note that this resource does NOT support new commit creation.

bitbucket.repositories.username.repo_slug.commits.revision.post({
  "username": "",
  "revision": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • revision required string
    • repo_slug required string

Output

repositories.username.repo_slug.components.get

Returns the components that have been defined in the issue tracker.

This resource is only available on repositories that have the issue tracker enabled.

bitbucket.repositories.username.repo_slug.components.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.components.component_id.get

Returns the specified issue tracker component object.

bitbucket.repositories.username.repo_slug.components.component_id.get({
  "username": "",
  "component_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • component_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.default_reviewers.get

Returns the repository's default reviewers.

These are the users that are automatically added as reviewers on every new pull request that is created.

bitbucket.repositories.username.repo_slug.default_reviewers.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.default_reviewers.target_username.delete

Removes a default reviewer from the repository.

bitbucket.repositories.username.repo_slug.default_reviewers.target_username.delete({
  "username": "",
  "target_username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • target_username required string
    • repo_slug required string

Output

repositories.username.repo_slug.default_reviewers.target_username.get

Returns the specified reviewer.

This can be used to test whether a user is among the repository's default reviewers list. A 404 indicates that that specified user is not a default reviewer.

bitbucket.repositories.username.repo_slug.default_reviewers.target_username.get({
  "username": "",
  "target_username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • target_username required string
    • repo_slug required string

Output

repositories.username.repo_slug.default_reviewers.target_username.put

Adds the specified user to the repository's list of default reviewers.

This method is idempotent. Adding a user a second time has no effect.

bitbucket.repositories.username.repo_slug.default_reviewers.target_username.put({
  "username": "",
  "target_username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • target_username required string
    • repo_slug required string

Output

repositories.username.repo_slug.diff.spec.get

Produces a raw, git-style diff for either a single commit (diffed against its first parent), or a revspec of 2 commits (e.g. 3a8b42..9ff173 where the first commit represents the source and the second commit the destination).

In case of the latter (diffing a revspec), a 3-way diff, or merge diff, is computed. This shows the changes introduced by the left branch (3a8b42 in our example) as compared againt the right branch (9ff173).

This is equivalent to merging the left branch into the right branch and then computing the diff of the merge commit against its first parent (the right branch). This follows the same behavior as pull requests that also show this style of 3-way, or merge diff.

While similar to patches, diffs:

  • Don't have a commit header (username, commit message, etc)
  • Support the optional path=foo/bar.py query param to filter the diff to just that one file diff

The raw diff is returned as-is, in whatever encoding the files in the repository use. It is not decoded into unicode. As such, the content-type is text/plain.

bitbucket.repositories.username.repo_slug.diff.spec.get({
  "username": "",
  "spec": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • context integer: Generate diffs with lines of context instead of the usual three
    • path string: Limit the diff to a single file
    • username required string
    • spec required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.downloads.get

Returns a list of download links associated with the repository.

bitbucket.repositories.username.repo_slug.downloads.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.downloads.post

Upload new download artifacts.

To upload files, perform a multipart/form-data POST containing one or more files fields:

$ echo Hello World > hello.txt
$ curl -s -u evzijst -X POST https://api.bitbucket.org/2.0/repositories/evzijst/git-tests/downloads -F files=@hello.txt

When a file is uploaded with the same name as an existing artifact, then the existing file will be replaced.

bitbucket.repositories.username.repo_slug.downloads.post({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.downloads.filename.delete

Deletes the specified download artifact from the repository.

bitbucket.repositories.username.repo_slug.downloads.filename.delete({
  "username": "",
  "filename": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • filename required string
    • repo_slug required string

Output

repositories.username.repo_slug.downloads.filename.get

Return a redirect to the contents of a download artifact.

This endpoint returns the actual file contents and not the artifact's metadata.

$ curl -s -L https://api.bitbucket.org/2.0/repositories/evzijst/git-tests/downloads/hello.txt
Hello World
bitbucket.repositories.username.repo_slug.downloads.filename.get({
  "username": "",
  "filename": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • filename required string
    • repo_slug required string

Output

repositories.username.repo_slug.forks.get

Returns a paginated list of all the forks of the specified repository.

bitbucket.repositories.username.repo_slug.forks.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.hooks.get

Returns a paginated list of webhooks installed on this repository.

bitbucket.repositories.username.repo_slug.hooks.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.hooks.post

Creates a new webhook on the specified repository.

Example:

$ curl -X POST -u credentials -H 'Content-Type: application/json'           https://api.bitbucket.org/2.0/repositories/username/slug/hooks           -d '
    {
      "description": "Webhook Description",
      "url": "https://example.com/",
      "active": true,
      "events": [
        "repo:push",
        "issue:created",
        "issue:updated"
      ]
    }'

Note that this call requires the webhook scope, as well as any scope that applies to the events that the webhook subscribes to. In the example above that means: webhook, repository and issue.

Also note that the url must properly resolve and cannot be an internal, non-routed address.

bitbucket.repositories.username.repo_slug.hooks.post({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.hooks.uid.delete

Deletes the specified webhook subscription from the given repository.

bitbucket.repositories.username.repo_slug.hooks.uid.delete({
  "username": "",
  "uid": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • uid required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.hooks.uid.get

Returns the webhook with the specified id installed on the specified repository.

bitbucket.repositories.username.repo_slug.hooks.uid.get({
  "username": "",
  "uid": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • uid required string
    • repo_slug required string

Output

repositories.username.repo_slug.hooks.uid.put

Updates the specified webhook subscription.

The following properties can be mutated:

  • description
  • url
  • active
  • events
bitbucket.repositories.username.repo_slug.hooks.uid.put({
  "username": "",
  "uid": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • uid required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.get

Returns the issues in the issue tracker.

bitbucket.repositories.username.repo_slug.issues.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.post

Creates a new issue.

This call requires authentication. Private repositories or private issue trackers require the caller to authenticate with an account that has appropriate authorisation.

The authenticated user is used for the issue's reporter field.

bitbucket.repositories.username.repo_slug.issues.post({
  "_body": null,
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body required issue
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.delete

Deletes the specified issue. This requires write access to the repository.

bitbucket.repositories.username.repo_slug.issues.issue_id.delete({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.get

Returns the specified issue.

bitbucket.repositories.username.repo_slug.issues.issue_id.get({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.attachments.get

Returns all attachments for this issue.

This returns the files' meta data. This does not return the files' actual contents.

The files are always ordered by their upload date.

bitbucket.repositories.username.repo_slug.issues.issue_id.attachments.get({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.attachments.post

Upload new issue attachments.

To upload files, perform a multipart/form-data POST containing one or more file fields.

When a file is uploaded with the same name as an existing attachment, then the existing file will be replaced.

bitbucket.repositories.username.repo_slug.issues.issue_id.attachments.post({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.issues.issue_id.attachments.path.delete

Deletes an attachment.

bitbucket.repositories.username.repo_slug.issues.issue_id.attachments.path.delete({
  "username": "",
  "path": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • path required string
    • issue_id required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.issues.issue_id.attachments.path.get

Returns the contents of the specified file attachment.

Note that this endpoint does not return a JSON response, but instead returns a redirect pointing to the actual file that in turn will return the raw contents.

The redirect URL contains a one-time token that has a limited lifetime. As a result, the link should not be persisted, stored, or shared.

bitbucket.repositories.username.repo_slug.issues.issue_id.attachments.path.get({
  "username": "",
  "path": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • path required string
    • issue_id required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.issues.issue_id.comments.get

Returns all comments that were made on the specified issue.

The default sorting is oldest to newest and can be overridden with the sort query parameter.

bitbucket.repositories.username.repo_slug.issues.issue_id.comments.get({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.comments.comment_id.get

Returns the specified issue comment object.

bitbucket.repositories.username.repo_slug.issues.issue_id.comments.comment_id.get({
  "username": "",
  "comment_id": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • comment_id required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.vote.delete

Retract your vote.

bitbucket.repositories.username.repo_slug.issues.issue_id.vote.delete({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.vote.get

Check whether the authenticated user has voted for this issue. A 204 status code indicates that the user has voted, while a 404 implies they haven't.

bitbucket.repositories.username.repo_slug.issues.issue_id.vote.get({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.vote.put

Vote for this issue.

To cast your vote, do an empty PUT. The 204 status code indicates that the operation was successful.

bitbucket.repositories.username.repo_slug.issues.issue_id.vote.put({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.watch.delete

Stop watching this issue.

bitbucket.repositories.username.repo_slug.issues.issue_id.watch.delete({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.watch.get

Indicated whether or not the authenticated user is watching this issue.

bitbucket.repositories.username.repo_slug.issues.issue_id.watch.get({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.issues.issue_id.watch.put

Start watching this issue.

To start watching this issue, do an empty PUT. The 204 status code indicates that the operation was successful.

bitbucket.repositories.username.repo_slug.issues.issue_id.watch.put({
  "username": "",
  "issue_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • issue_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.milestones.get

Returns the milestones that have been defined in the issue tracker.

This resource is only available on repositories that have the issue tracker enabled.

bitbucket.repositories.username.repo_slug.milestones.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.milestones.milestone_id.get

Returns the specified issue tracker milestone object.

bitbucket.repositories.username.repo_slug.milestones.milestone_id.get({
  "username": "",
  "milestone_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • milestone_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.patch.spec.get

Produces a raw patch for a single commit (diffed against its first parent), or a patch-series for a revspec of 2 commits (e.g. 3a8b42..9ff173 where the first commit represents the source and the second commit the destination).

In case of the latter (diffing a revspec), a patch series is returned for the commits on the source branch (3a8b42 and its ancestors in our example). For Mercurial, a single patch is returned that combines the changes of all commits on the source branch.

While similar to diffs, patches:

  • Have a commit header (username, commit message, etc)
  • Do not support the path=foo/bar.py query parameter

The raw patch is returned as-is, in whatever encoding the files in the repository use. It is not decoded into unicode. As such, the content-type is text/plain.

bitbucket.repositories.username.repo_slug.patch.spec.get({
  "username": "",
  "spec": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • spec required string
    • repo_slug required string

Output

Output schema unknown

getPipelinesForRepository

Find pipelines

bitbucket.getPipelinesForRepository({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.

Output

createPipelineForRepository

Endpoint to create and initiate a pipeline. There are a couple of different options to initiate a pipeline, where the payload of the request will determine which type of pipeline will be instantiated.

Trigger a Pipeline for a branch or tag

One way to trigger pipelines is by specifying the reference for which you want to trigger a pipeline (e.g. a branch or tag). The specified reference will be used to determine which pipeline definition from the bitbucket-pipelines.yml file will be applied to initiate the pipeline. The pipeline will then do a clone of the repository and checkout the latest revision of the specified reference.

Example

$ curl -X POST -is -u username:password \
  -H 'Content-Type: application/json' \
 https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/ \
  -d '
  {
    "target": {
      "ref_type": "branch", 
      "type": "pipeline_ref_target", 
      "ref_name": "master"
    }
  }'

Trigger a Pipeline for a commit on a branch or tag

You can initiate a pipeline for a specific commit and in the context of a specified reference (e.g. a branch, tag or bookmark). The specified reference will be used to determine which pipeline definition from the bitbucket-pipelines.yml file will be applied to initiate the pipeline. The pipeline will clone the repository and then do a checkout the specified reference.

The following reference types are supported:

  • branch
  • named_branch
  • bookmark
  • tag

Example

$ curl -X POST -is -u username:password \
  -H 'Content-Type: application/json' \
  https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/ \
  -d '
  {
    "target": {
      "commit": {
        "type": "commit", 
        "hash": "ce5b7431602f7cbba007062eeb55225c6e18e956"
      }, 
      "ref_type": "branch", 
      "type": "pipeline_ref_target", 
      "ref_name": "master"
    }
  }'

Trigger a specific pipeline definition for a commit

You can trigger a specific pipeline that is defined in your bitbucket-pipelines.yml file for a specific commit. In addition to the commit revision, you specify the type and pattern of the selector that identifies the pipeline definition. The resulting pipeline will then clone the repository and checkout the specified revision.

Example

$ curl -X POST -is -u username:password \
  -H 'Content-Type: application/json' \
 https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/ \
 -d '
  {
     "target": {
      "commit": {
         "hash":"a3c4e02c9a3755eccdc3764e6ea13facdf30f923",
         "type":"commit"
       },
        "selector": {
           "type":"custom",
              "pattern":"Deploy to production"
          },
        "type":"pipeline_commit_target"
   }
  }'

Trigger a specific pipeline definition for a commit on a branch or tag

You can trigger a specific pipeline that is defined in your bitbucket-pipelines.yml file for a specific commit in the context of a specified reference. In addition to the commit revision, you specify the type and pattern of the selector that identifies the pipeline definition, as well as the reference information. The resulting pipeline will then clone the repository a checkout the specified reference.

Example

$ curl -X POST -is -u username:password \
  -H 'Content-Type: application/json' \
 https://api.bitbucket.org/2.0/repositories/jeroendr/meat-demo2/pipelines/ \
 -d '
  {
     "target": {
      "commit": {
         "hash":"a3c4e02c9a3755eccdc3764e6ea13facdf30f923",
         "type":"commit"
       },
       "selector": {
          "type": "custom",
          "pattern": "Deploy to production"
       },
       "type": "pipeline_ref_target",
       "ref_name": "master",
       "ref_type": "branch"
     }
  }'
bitbucket.createPipelineForRepository({
  "username": "",
  "repo_slug": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • _body required pipeline

Output

getPipelineForRepository

Retrieve a specified pipeline

bitbucket.getPipelineForRepository({
  "username": "",
  "repo_slug": "",
  "pipeline_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • pipeline_uuid required string: The pipeline UUID.

Output

getPipelineStepsForRepository

Find steps for the given pipeline.

bitbucket.getPipelineStepsForRepository({
  "username": "",
  "repo_slug": "",
  "pipeline_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • pipeline_uuid required string: The UUID of the pipeline.

Output

getPipelineStepForRepository

Retrieve a given step of a pipeline.

bitbucket.getPipelineStepForRepository({
  "username": "",
  "repo_slug": "",
  "pipeline_uuid": "",
  "step_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • pipeline_uuid required string: The UUID of the pipeline.
    • step_uuid required string: The UUID of the step.

Output

getPipelineStepLogForRepository

Retrieve the log file for a given step of a pipeline.

This endpoint supports (and encourages!) the use of HTTP Range requests to deal with potentially very large log files.

bitbucket.getPipelineStepLogForRepository({
  "username": "",
  "repo_slug": "",
  "pipeline_uuid": "",
  "step_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • pipeline_uuid required string: The UUID of the pipeline.
    • step_uuid required string: The UUID of the step.

Output

Output schema unknown

stopPipeline

Signal the stop of a pipeline and all of its steps that not have completed yet.

bitbucket.stopPipeline({
  "username": "",
  "repo_slug": "",
  "pipeline_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • pipeline_uuid required string: The UUID of the pipeline.

Output

Output schema unknown

getRepositoryPipelineConfig

Retrieve the repository pipelines configuration.

bitbucket.getRepositoryPipelineConfig({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.

Output

updateRepositoryPipelineConfig

Update the pipelines configuration for a repository.

bitbucket.updateRepositoryPipelineConfig({
  "username": "",
  "repo_slug": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • _body required pipelines_config

Output

deleteRepositoryPipelineKeyPair

Delete the repository SSH key pair.

bitbucket.deleteRepositoryPipelineKeyPair({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.

Output

Output schema unknown

getRepositoryPipelineSshKeyPair

Retrieve the repository SSH key pair excluding the SSH private key. The private key is a write only field and will never be exposed in the logs or the REST API.

bitbucket.getRepositoryPipelineSshKeyPair({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.

Output

updateRepositoryPipelineKeyPair

Create or update the repository SSH key pair. The private key will be set as a default SSH identity in your build container.

bitbucket.updateRepositoryPipelineKeyPair({
  "username": "",
  "repo_slug": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • _body required pipeline_ssh_key_pair

Output

getRepositoryPipelineKnownHosts

Find repository level known hosts.

bitbucket.getRepositoryPipelineKnownHosts({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.

Output

createRepositoryPipelineKnownHost

Create a repository level known host.

bitbucket.createRepositoryPipelineKnownHost({
  "username": "",
  "repo_slug": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • _body required pipeline_known_host

Output

deleteRepositoryPipelineKnownHost

Delete a repository level known host.

bitbucket.deleteRepositoryPipelineKnownHost({
  "username": "",
  "repo_slug": "",
  "known_host_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • known_host_uuid required string: The UUID of the known host to delete.

Output

Output schema unknown

getRepositoryPipelineKnownHost

Retrieve a repository level known host.

bitbucket.getRepositoryPipelineKnownHost({
  "username": "",
  "repo_slug": "",
  "known_host_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • known_host_uuid required string: The UUID of the known host to retrieve.

Output

updateRepositoryPipelineKnownHost

Update a repository level known host.

bitbucket.updateRepositoryPipelineKnownHost({
  "username": "",
  "repo_slug": "",
  "known_host_uuid": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • known_host_uuid required string: The UUID of the known host to update.
    • _body required pipeline_known_host

Output

getRepositoryPipelineVariables

Find repository level variables.

bitbucket.getRepositoryPipelineVariables({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.

Output

createRepositoryPipelineVariable

Create a repository level variable.

bitbucket.createRepositoryPipelineVariable({
  "username": "",
  "repo_slug": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • _body required pipeline_variable

Output

deleteRepositoryPipelineVariable

Delete a repository level variable.

bitbucket.deleteRepositoryPipelineVariable({
  "username": "",
  "repo_slug": "",
  "variable_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • variable_uuid required string: The UUID of the variable to delete.

Output

Output schema unknown

getRepositoryPipelineVariable

Retrieve a repository level variable.

bitbucket.getRepositoryPipelineVariable({
  "username": "",
  "repo_slug": "",
  "variable_uuid": ""
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • variable_uuid required string: The UUID of the variable to retrieve.

Output

updateRepositoryPipelineVariable

Update a repository level variable.

bitbucket.updateRepositoryPipelineVariable({
  "username": "",
  "repo_slug": "",
  "variable_uuid": "",
  "_body": null
}, context)

Input

  • input object
    • username required string: The account.
    • repo_slug required string: The repository.
    • variable_uuid required string: The UUID of the variable to update.
    • _body required pipeline_variable

Output

repositories.username.repo_slug.pullrequests.get

Returns a paginated list of all pull requests on the specified repository. By default only open pull requests are returned. This can be controlled using the state query parameter. To retrieve pull requests that are in one of multiple states, repeat the state parameter for each individual state.

This endpoint also supports filtering and sorting of the results. See filtering and sorting for more details.

bitbucket.repositories.username.repo_slug.pullrequests.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • state string (values: MERGED, SUPERSEDED, OPEN, DECLINED): Only return pull requests that are in this state. This parameter can be repeated.
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.post

Creates a new pull request.

bitbucket.repositories.username.repo_slug.pullrequests.post({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body pullrequest
    • username required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.activity.get

Returns a paginated list of the pull request's activity log.

This includes comments that were made by the reviewers, updates and approvals.

bitbucket.repositories.username.repo_slug.pullrequests.activity.get({
  "username": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.pullrequests.pull_request_id.get

Returns the specified pull request.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.get({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.put

Mutates the specified pull request.

This can be used to change the pull request's branches or description.

Only open pull requests can be mutated.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.put({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • _body pullrequest
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.activity.get

Returns a paginated list of the pull request's activity log.

This includes comments that were made by the reviewers, updates and approvals.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.activity.get({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

Output schema unknown

repositories.username.repo_slug.pullrequests.pull_request_id.approve.delete

Redact the authenticated user's approval of the specified pull request.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.approve.delete({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.approve.post

Approve the specified pull request as the authenticated user.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.approve.post({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.comments.get

Returns a paginated list of the pull request's comments.

This includes both global, inline comments and replies.

The default sorting is oldest to newest and can be overridden with the sort query parameter.

This endpoint also supports filtering and sorting of the results. See filtering and sorting for more details.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.comments.get({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.comments.comment_id.get

Returns a specific pull request comment.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.comments.comment_id.get({
  "username": "",
  "pull_request_id": "",
  "comment_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • comment_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.commits.get

Returns a paginated list of the pull request's commits.

These are the commits that are being merged into the destination branch when the pull requests gets accepted.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.commits.get({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.decline.post

Declines the pull request.

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.decline.post({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories.username.repo_slug.pullrequests.pull_request_id.diff.get

bitbucket.repositories.username.repo_slug.pullrequests.pull_request_id.diff.get({
  "username": "",
  "pull_request_id": "",
  "repo_slug": ""
}, context)

Input

  • input object
    • username required string
    • pull_request_id required string
    • repo_slug required string

Output

repositories

6.0.0

5 years ago

5.0.0

7 years ago

4.0.0

7 years ago

3.0.0

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

0.0.3

9 years ago

0.0.1

9 years ago