Buddy's officially supported node.js client library.
This library is distributed on npm
. In order to add it as a dependency, run the following command:
$ npm install buddyworksapi --save
First you need to add application in your Buddy ID.
You will then obtain clientId & clientSecret to execute this code:
var buddyworksapi = require('buddyworksapi');
buddyworksapi.useOAuth(clientId, clientSecret);
Next you can get authorize url:
buddyworksapi.oauth.getAuthorizeUrl(scopes, state, redirectUrl);
scopes is array of strings - help
state should be an unguessable random string. It is used to protect against cross-site request forgery attacks.
redirectUrl is optional more
You should redirect your user to created url, after authorization he should get back to your page (configured in application or passed to the method)
In query params you will get code & state.
State should be the same as you passed before.
Code is used in next step to exchange for access token:
buddyworksapi.oauth.getAccessToken(code, redirectUrl, function(err, json){
if (err) console.error(err);
else{
console.log(json.access_token);//token used to authenticate requests in API.
console.log(json.expires_in);//time in seconds how long the token will be valid.
}
});
You can also use api tokens.
That functionality is provided for testing purpose and will only work for individual tokens generated per user.
All requests will be called in behalf of the user whom provided token
If you need more instances of client api you can create new with provided code:
var buddyworksapi = require('buddyworksapi');
var buddyworksapi2 = buddyworksapi.create();
For detailed info what send for which method, error codes, rates & limits - check our documentation
Get user
buddyworksapi.profile.getUser(accessToken, function(err, json){});
Edit user
buddyworksapi.profile.editUser(accessToken, data, function(err, json){});
Get emails
buddyworksapi.profile.getEmails(accessToken, function(err, json){});
Add email
buddyworksapi.profile.addEmail(accessToken, email, function(err, json){});
Delete email
buddyworksapi.profile.deleteEmail(accessToken, email, function(err, json){});
Get ssh keys
buddyworksapi.profile.getSshKeys(accessToken, function(err, json){});
Add ssh key
buddyworksapi.profile.addSshKey(accessToken, data, function(err, json){});
Delete ssh key
buddyworksapi.profile.deleteSshKey(accessToken, keyId, function(err, json){});
Get ssh key
buddyworksapi.profile.getSshKey(accessToken, keyId, function(err, json){});
Workspaces list
buddyworksapi.workspaces.getList(accessToken, function(err, json){});
Workspace details
buddyworksapi.workspaces.getWorkspace(accessToken, domain, function(err, json){});
Get projects list
buddyworksapi.projects.getList(accessToken, domain, filters, function(err, json){});
Add project
buddyworksapi.projects.addProject(accessToken, domain, data, function(err, json){});
Get project
buddyworksapi.projects.getProject(accessToken, domain, projectName, function(err, json){});
Edit project
buddyworksapi.projects.editProject(accessToken, domain, projectName, data, function(err, json){});
Delete project
buddyworksapi.projects.deleteProject(accessToken, domain, projectName, function(err, json){});
Get project members
buddyworksapi.projects.getProjectMembers(accessToken, domain, projectName, filters, function(err, json){});
Get project members
buddyworksapi.projects.addProjectMember(accessToken, domain, projectName, data, function(err, json){});
Get project member
buddyworksapi.projects.getProjectMember(accessToken, domain, projectName, memberId, function(err, json){});
Edit project member
buddyworksapi.projects.editProjectMember(accessToken, domain, projectName, memberId, permissionId, function(err, json){});
Delete project member
buddyworksapi.projects.deleteProjectMember(accessToken, domain, projectName, memberId, function(err, json){});
Get workspace members
buddyworksapi.members.getList(accessToken, domain, filters, function(err, json){});
Add workspace member
buddyworksapi.members.addMember(accessToken, domain, email, function(err, json){});
Get workspace member
buddyworksapi.members.getMember(accessToken, domain, memberId, function(err, json){});
Set member as administrator
buddyworksapi.members.updateAdministrator(accessToken, domain, memberId, isAdmin, function(err, json){});
Delete workspace member
buddyworksapi.members.deleteMember(accessToken, domain, memberId, function(err, json){});
Get member projects
buddyworksapi.members.getMemberProjects(accessToken, domain, memberId, filters, function(err, json){});
Get groups list
buddyworksapi.groups.getList(accessToken, domain, function(err, json){});
Add group
buddyworksapi.groups.addGroup(accessToken, domain, data, function(err, json){});
Get group
buddyworksapi.groups.getGroup(accessToken, domain, groupId, function(err, json){});
Edit group
buddyworksapi.groups.editGroup(accessToken, domain, groupId, data, function(err, json){});
Delete group
buddyworksapi.groups.deleteGroup(accessToken, domain, groupId, function(err, json){});
Get group members
buddyworksapi.groups.getGroupMembers(accessToken, domain, groupId, function(err, json){});
Add group member
buddyworksapi.groups.addGroupMember(accessToken, domain, groupId, memberId, function(err, json){});
Get group member
buddyworksapi.groups.getGroupMember(accessToken, domain, groupId, memberId, function(err, json){});
Delete group member
buddyworksapi.groups.deleteGroupMember(accessToken, domain, groupId, memberId, function(err, json){});
Get permissions list
buddyworksapi.permissions.getList(accessToken, domain, function(err, json){});
Add permission
buddyworksapi.permissions.addPermission(accessToken, domain, data, function(err, json){});
Get permission
buddyworksapi.permissions.getPermission(accessToken, domain, permissionId, function(err, json){});
Edit permission
buddyworksapi.permissions.editPermission(accessToken, domain, permissionId, data, function(err, json){});
Delete permission
buddyworksapi.permissions.deletePermission(accessToken, domain, permissionId, function(err, json){});
Delete permission
buddyworksapi.webhooks.getList(accessToken, domain, function(err, json){});
Add webhook
buddyworksapi.webhooks.addWebhook(accessToken, domain, data, function(err, json){});
Get webhook
buddyworksapi.webhooks.getWebhook(accessToken, domain, webhookId, function(err, json){});
Edit webhook
buddyworksapi.webhooks.editWebhook(accessToken, domain, webhookId, data, function(err, json){});
Delete webhook
buddyworksapi.webhooks.deleteWebhook(accessToken, domain, webhookId, function(err, json){});
Get contents
buddyworksapi.source.getContents(accessToken, domain, projectName, path, filters, function(err, json){});
Add file
buddyworksapi.source.addFile(accessToken, domain, projectName, data, function(err, json){});
Edit file
buddyworksapi.source.editFile(accessToken, domain, projectName, path, data, function(err, json){});
Delete file
buddyworksapi.source.deleteFile(accessToken, domain, projectName, path, data, function(err, json){});
Get commits
buddyworksapi.commits.getList(accessToken, domain, projectName, filters, function(err, json){});
Get commit
buddyworksapi.commits.getCommit(accessToken, domain, projectName, revision, function(err, json){});
Get compare
buddyworksapi.commits.getCompare(accessToken, domain, projectName, base, head, filters, function(err, json){});
Get tags
buddyworksapi.tags.getList(accessToken, domain, projectName, function(err, json){});
Get tag
buddyworksapi.tags.getTag(accessToken, domain, projectName, name, function(err, json){});
Get branches
buddyworksapi.branches.getList(accessToken, domain, projectName, function(err, json){});
Get branch revision
buddyworksapi.branches.getRevision(accessToken, domain, projectName, name, function(err, json){});
Add branch
buddyworksapi.branches.addBranch(accessToken, domain, projectName, data, function(err, json){});
Delete branch
buddyworksapi.branches.deleteBranch(accessToken, domain, projectName, name, force, function(err, json){});
Get scenarios
buddyworksapi.scenarios.getList(accessToken, domain, projectName, filters, function(err, json){});
Add scenario
buddyworksapi.scenarios.addScenario(accessToken, domain, projectName, data, function(err, json){});
Get scenario
buddyworksapi.scenarios.getScenario(accessToken, domain, projectName, scenarioId, function(err, json){});
Edit scenario
buddyworksapi.scenarios.editScenario(accessToken, domain, projectName, scenarioId, data, function(err, json){});
Delete scenario
buddyworksapi.scenarios.deleteScenario(accessToken, domain, projectName, scenarioId, function(err, json){});
Get scenario actions
buddyworksapi.scenarios.getScenarioActions(accessToken, domain, projectName, scenarioId, function(err, json){});
Add scenario action
buddyworksapi.scenarios.addScenarioAction(accessToken, domain, projectName, scenarioId, data, function(err, json){});
Reorder scenario actions
buddyworksapi.scenarios.reorderScenarioActions(accessToken, domain, projectName, scenarioId, order, function(err, json){});
order is an array of actions ids ie: [1, 100, 200, 50]
Get scenario action
buddyworksapi.scenarios.getScenarioAction(accessToken, domain, projectName, scenarioId, actionId, function(err, json){});
Edit scenario action
buddyworksapi.scenarios.editScenarioAction(accessToken, domain, projectName, scenarioId, actionId, data, function(err, json){});
Delete scenario action
buddyworksapi.scenarios.deleteScenarioAction(accessToken, domain, projectName, scenarioId, actionId, function(err, json){});
Get releases
buddyworksapi.releases.getList(accessToken, domain, projectName, scenarioId, filters, function(err, json){});
Run release
buddyworksapi.releases.runRelease(accessToken, domain, projectName, scenarioId, data, function(err, json){});
Get release
buddyworksapi.releases.getRelease(accessToken, domain, projectName, scenarioId, releaseId, function(err, json){});
Cancel release
buddyworksapi.releases.cancelRelease(accessToken, domain, projectName, scenarioId, releaseId, function(err, json){});
Retry release
buddyworksapi.releases.retryRelease(accessToken, domain, projectName, scenarioId, releaseId, function(err, json){});