Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
A Ruby client library for Bitbucket REST API v2 with OAuth Authentication.
WARNING This gem is under development.
This gem is inspired by vongrippen/bitbucket. Thanks.
yard doc (master branch)
Add this line to your application's Gemfile:
gem 'tinybucket'
And then execute:
$ bundle
Or install it yourself as:
$ gem install tinybucket
WARNING These specs will be changed at any time.
NOTE: x
mark means Already implemented.
.
logger = Logger.new($stdout)
logger.level = Logger::WARN
Tinybucket.configure do |config|
# Configure logger if you want.
#
# optional, default: nil (no logging)
config.logger = logger
# Configure cache_store options if you need.
#
# see https://github.com/plataformatec/faraday-http-cache
#
# optional, default: nil (disable request cache)
config.cache_store_options = { store: Rails.cache, logger: logger }
# Configure access_token if you can prepare OAuth2 access_token.
config.access_token = 'your_access_token'
# Configure oauth_token/oauth_secret if you want to use OAuth1.0 authentication.
# (This config will be ignored if you configure OAuth2 access_token.)
config.oauth_token = 'key'
config.oauth_secret = 'secret'
end
After v1.0.0, tinybucket gem support lazy enumerator !
This feature make your code more rubyish, like this.
# get enumerator to enumerate repositories.
repos = bucket.repos('myname')
# Select repositories which has 2 pull requests to be reviewed.
repos = repos('my_name').select do |repo|
repo.pull_requests.size > 2
end.map(&:full_name)
This enumerable feature depends on Paging through object collections at Bitbucket Cloud REST API.
size
attributeobject collections wrapper has size
attribute at Bitbucket Cloud REST API.
The size
attribute describe as optional
attribute.
In tinybucket gem, collection size depend on side
attribute of object collections wrapper in Bitbucket Cloud REST API.
So enumerator's size
attribute may return nil
.
bucket = Tinybucket.new
# [x] GET the team profile
team = bucket.team('team name')
# [x] GET the team members
members = team.members
# [x] GET the team followers
followers = team.followers
# [x] GET a list of accounts the team is following
following = team.following
# [x] GET the team's repositories
repos = team.repos
# [x] GET the user profile
user = bucket.user('user name')
# [x] GET the list of followers
followers = user.followers
# [x] GET a list of accounts the user is following
followings = user.followings
# [x] GET the user's repositories
repos = user.repos
# [x] GET a list of all public repositories
repos = bucket.repos
# [x] GET a list of repositories owned by the account 'someone'
repos = bucket.repos('someone')
repos = bucket.repos('myname')
# [ ] POST a new repository
repos.create(params)
# [x] GET a repository
repo = bucket.repo('someone', 'great_repo')
# [x] Load a repository
# (Load the repository attributes from Bitbucket WebAPI)
repo.load
# [ ] DELETE a repository
repo.destroy
# [x] GET a list of watchers
watchers = repo.watchers
# [x] GET a list of forks
repos = repo.forks
repo = bucket.repo('someone', 'great_repo')
# [x ] GET a list of pull requests
pull_requests = repo.pull_requests(options)
# [ ] POST (create) a new pull request
pull_requests.create(params)
# [ ] GET the log of all of a repository's pull request activity
activities = pull_requests.activities(options)
repo = bucket.repo('someone', 'great_repo')
# [x] GET a specific pull request
pull_request = repo.pull_request(pr_id)
# [ ] PUT a pull request update
pull_request.update(params)
# [x] GET the commits for a pull request
commits = pull_request.commits
# [x] POST a pull request approval
pull_request.approve
# [x] DELETE a pull request approval
pull_request.unapprove
# [x] GET the diff for a pull request
diff = pull_request.diff
# [ ] GET the activity for a pull request
activities = pull_request.activities(options)
# [x] Accept and merge a pull request
pull_request.merge(options)
# [x] Decline or reject a pull request
pull_request.decline(options)
# [x] GET a list of pull request comments
comments = pull_request.comments
# [x] GET an individual pull request comment
comment = pull_request.comment(comment_id)
repo = bucket.repo('someone', 'great_repo')
# [x] GET a commits list for a repository or compare commits across branches
# branchortag, include, exclude options
commits = repo.commits(options)
repo = bucket.repo('someone', 'great_repo')
# [x] GET an individual commit
commit = repo.commit('revision')
# [x] GET a list of commit comments
comments = commit.comments
# [x] GET an individual commit comment
comment = commit.comment(comment_id)
# [x] POST a commit approval
commit.approve
# [x] DELETE a commit approval
commit.unapprove
repo = bucket.repo('someone', 'great_repo')
# [x ] GET a list of branches
branches = repo.branches(options)
repo = bucket.repo('someone', 'great_repo')
# [x] GET a specific branch
branch = repo.branch(branch_name)
repo = bucket.repo('someone', 'great_repo')
# [x] GET the branch-restrictions
restrictions = repo.branch_restrictions
# [ ] POST the branch-restrictions
new_restriction = restrictions.create(params)
repo = bucket.repo('someone', 'great_repo').find
# [x] GET a specific restriction
restriction = repo.branch_restriction(restriction_id)
# [ ] PUT a branch restriction update
restriction.update(params)
# [ ] DELETE the branch restriction
restriction.destroy
repo = bucket.repo('someone', 'great_repo')
COMMIT_ID = '7e968c5'
# [x] GET a diff
diff = repo.diff(COMMIT_ID)
# [x] GET a patch
patch = repo.patch(COMMIT_ID)
repo = bucket.repo('someone', 'great_repo')
COMMIT_ID = '7e968c5'
commit = repo.commit(COMMIT_ID)
BUILD_STATUS_KEY = 'tinybucket'
# [x] POST a build status for a commit
commit.build_statuses.create(
key: BUILD_STATUS_KEY,
state: 'INPROGRESS',
name: 'Name of build',
url: 'link to the build result',
description: 'about build'
)
repo = bucket.repo('someone', 'great_repo')
COMMIT_ID = '7e968c5'
commit = repo.commit(COMMIT_ID)
BUILD_STATUS_KEY = 'tinybucket'
# [x] GET the build status for a commit
status = commit.build_status(BUILD_STATUS_KEY)
# [x] PUT a build status for a commit
status.update(
state: 'SUCCESSFUL',
name: 'Name of build',
url: 'link to the build result',
description: 'about build'
)
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)See LICENSE file.
FAQs
Unknown package
We found that tinybucket2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.