Skip to content

Commit bff96be

Browse files
authored
Add ability to set a label on a repository via the API (#519)
Co-authored-by: Andrew Regier <[email protected]>
1 parent 5b860b4 commit bff96be

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

atlassian/bitbucket.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ def get_repo(self, project_key, repository_slug):
533533
def get_repo_labels(self, project_key, repository_slug):
534534
"""
535535
Get labels for a specific repository from a project. This operates based on slug not name which may
536-
be confusing to some users.
536+
be confusing to some users. (BitBucket Server only)
537537
:param project_key: Key of the project you wish to look in.
538538
:param repository_slug: url-compatible repository identifier
539539
:return: Dictionary of request response
@@ -544,6 +544,22 @@ def get_repo_labels(self, project_key, repository_slug):
544544
.format(project=project_key, repository=repository_slug)
545545
return self.get(url)
546546

547+
def set_repo_label(self, project_key, repository_slug, label_name):
548+
"""
549+
Sets a label on a repository. (BitBucket Server only)
550+
The authenticated user must have REPO_ADMIN permission for the specified repository to call this resource.
551+
:param project_key: Key of the project you wish to look in.
552+
:param repository_slug: url-compatible repository identifier
553+
:param label_name: label name to apply
554+
:return:
555+
"""
556+
data = {'name': label_name}
557+
if self.cloud:
558+
raise Exception("Not supported in Bitbucket Cloud")
559+
url = 'rest/api/1.0/projects/{project}/repos/{repository}/labels' \
560+
.format(project=project_key, repository=repository_slug)
561+
return self.post(url, data=data)
562+
547563
def repo_all_list(self, project_key):
548564
"""
549565
Get all repositories list from project

docs/bitbucket.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ Manage repositories
5050
# Get labels for a single repository
5151
bitbucket.get_repo_labels(project_key, repository_slug)
5252
53+
# Set label for a single repository
54+
bitbucket.set_repo_label(project_key, repository_slug, label_name)
55+
5356
# Disable branching model
5457
bitbucket.disable_branching_model(project_key, repo_key)
5558

0 commit comments

Comments
 (0)