Skip to content

Commit 546720a

Browse files
gonchikSpacetown
andauthored
[Confluence] Get group members (#674)
* Confluence: provide an exact method to extract all users. related to the #638 * Bump version and polish * Update atlassian/confluence.py Thank you! :) Co-authored-by: Michael Förderer <40258682+Spacetown@users.noreply.github.com> * Update atlassian/confluence.py Co-authored-by: Michael Förderer <40258682+Spacetown@users.noreply.github.com> Co-authored-by: Michael Förderer <40258682+Spacetown@users.noreply.github.com>
1 parent 814e0ee commit 546720a

File tree

6 files changed

+54
-22
lines changed

6 files changed

+54
-22
lines changed

atlassian/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.4.2
1+
2.4.3

atlassian/confluence.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1737,6 +1737,28 @@ def get_group_members(self, group_name="confluence-users", start=0, limit=1000,
17371737

17381738
return response.get("results")
17391739

1740+
def get_all_members(self, group_name="confluence-users", expand=None):
1741+
"""
1742+
Get collection of all users in the given group
1743+
:param group_name
1744+
:param expand: OPTIONAL: A comma separated list of properties to expand on the content. status
1745+
:return:
1746+
"""
1747+
limit = 50
1748+
flag = True
1749+
step = 0
1750+
members = []
1751+
while flag:
1752+
values = self.get_group_members(group_name=group_name, start=len(members), limit=limit, expand=expand)
1753+
step += 1
1754+
if len(values) == 0:
1755+
flag = False
1756+
else:
1757+
members.extend(values)
1758+
if not members:
1759+
print("Did not get members from {} group, please check permissions or connectivity".format(group_name))
1760+
return members
1761+
17401762
def get_space(self, space_key, expand="description.plain,homepage"):
17411763
"""
17421764
Get information about a space through space key

examples/bitbucket/bitbucket_check_last_auth_users.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ def report(all=False, non_auth=False, limit=20):
2525
else:
2626
full_date = None
2727
if full_date:
28-
output = "{} ({}) authenticated on {}".format(user.get('displayName'), user.get('emailAddress'), full_date)
28+
output = "{} ({}) authenticated on {}".format(user.get("displayName"), user.get("emailAddress"), full_date)
2929
if all:
3030
print(output)
3131
else:
32-
output = "{} ({}) not authenticated yet".format(user.get('displayName'), user.get('emailAddress'))
32+
output = "{} ({}) not authenticated yet".format(user.get("displayName"), user.get("emailAddress"))
3333
if non_auth or all:
3434
print(output)
3535

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
# coding=utf-8
22
from atlassian import Confluence
3+
from pprint import pprint
4+
5+
"""This example shows how to get all users from group e.g. group_name """
36

47
confluence = Confluence(url="http://localhost:8090", username="admin", password="admin")
5-
# this example related get all user from group e.g. group_name
6-
group_name = "confluence-users"
7-
flag = True
8-
i = 0
9-
limit = 50
10-
result = []
11-
while flag:
12-
response = confluence.get_group_members(group_name=group_name, start=i * limit, limit=limit)
13-
if response and len(response):
14-
i += 1
15-
result.append(response)
16-
else:
17-
flag = False
18-
print(result)
8+
9+
10+
def get_all_members(group_name):
11+
flag = True
12+
i = 0
13+
limit = 50
14+
result = []
15+
16+
while flag:
17+
response = confluence.get_group_members(group_name=group_name, start=i * limit, limit=limit)
18+
if response and len(response):
19+
i += 1
20+
result.append(response)
21+
else:
22+
flag = False
23+
return result
24+
25+
26+
if __name__ == "__main__":
27+
group_name = "confluence-users"
28+
pprint(get_all_members(group_name=group_name))

examples/jira/jira_convert_group_members_into_user_in_role.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def convert_group_into_users_in_role(project_key, role_id, group_name):
1313
users = jira.get_all_users_from_group(group=group_name, limit=1000).get("values")
1414
for user in users:
1515
jira.add_user_into_project_role(project_key=project_key, role_id=role_id, user_name=user.get("name"))
16-
print("{} added into role_id {} in {}".format(user.get('name'), role_id, project_key))
16+
print("{} added into role_id {} in {}".format(user.get("name"), role_id, project_key))
1717

1818

1919
group_name_to_find = "old-developers"
@@ -27,5 +27,5 @@ def convert_group_into_users_in_role(project_key, role_id, group_name):
2727
for member in members_of_role:
2828
if member.get("type") == "atlassian-group-role-actor":
2929
if member.get("name") == group_name_to_find:
30-
print('{} has {}'.format(project.get("key"), role.get("name")))
30+
print("{} has {}".format(project.get("key"), role.get("name")))
3131
convert_group_into_users_in_role(project.get("key"), role.get("id"), group_name_to_find)

examples/jira/jira_find_screen_similarity.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,18 @@ def extract_count(json):
4141
}
4242
)
4343
count_fields_per_screen.append(number_fields)
44-
print("Number of available screen fields {} for screen with name {}".format(number_fields, screen.get('name')))
44+
print("Number of available screen fields {} for screen with name {}".format(number_fields, screen.get("name")))
4545

4646
screens.sort(key=extract_count, reverse=True)
4747
flipped_fields = {}
4848

4949
print("The same screen of fields based on the count")
5050
for x in screens:
5151
if count_fields_per_screen.count(x["available_fields_count"]) > 1:
52-
print("Please, check {}/secure/admin/ConfigureFieldScreen.jspa?id={}".format(jira.url, x['screen_id']))
52+
print("Please, check {}/secure/admin/ConfigureFieldScreen.jspa?id={}".format(jira.url, x["screen_id"]))
5353

5454
print("=" * 12)
5555
print("The same field screens based on the hash")
5656
for x in screens:
5757
if hashes.count(x["available_fields_hash"]) > 1:
58-
print("Please, check {}/secure/admin/ConfigureFieldScreen.jspa?id={}".format(jira.url, x['screen_id']))
58+
print("Please, check {}/secure/admin/ConfigureFieldScreen.jspa?id={}".format(jira.url, x["screen_id"]))

0 commit comments

Comments
 (0)