I want to remove a group from a specific project on Jira Cloud using REST API.
I've a script to add a group on project using REST API but I can't solved the deletion part.
def get_projects_by_category(jira_url, username, api_token, category):
auth = HTTPBasicAuth(username, api_token)
headers = {
'Accept': 'application/json'
}
start_at = 0
max_results = 50
all_projects = []
while True:
url = f'{jira_url}/rest/api/3/project/search?startAt={start_at}&maxResults={max_results}'
response = requests.get(url, headers=headers, auth=auth)
if response.status_code == 200:
data = response.json()
projects = data.get('values', [])
all_projects.extend(projects)
if data['isLast']:
break
start_at += max_results
else:
print(f'Erreur {response.status_code}: {response.text}')
return None
filtered_projects = [project for project in all_projects if 'projectCategory' in project and project['projectCategory']['name'] == category]
return filtered_projects
def get_role_id(jira_url, username, api_token, role_name):
auth = HTTPBasicAuth(username, api_token)
headers = {
'Accept': 'application/json'
}
url = f'{jira_url}/rest/api/3/role'
response = requests.get(url, headers=headers, auth=auth)
if response.status_code == 200:
roles = response.json()
for role in roles:
if role['name'] == role_name:
return role['id']
print(f'Erreur lors de la récupération des rôles: {response.status_code}: {response.text}')
return None
def remove_group_from_projects(jira_url, username, api_token, projects, role_id, group_name):
auth = HTTPBasicAuth(username, api_token)
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
for project in projects:
project_id = project['id']
url = f'{jira_url}/rest/api/3/project/{project_id}/role/{role_id}'
print(f'Trying to delete group {group_name} from project {project["name"]} with role ID {role_id}')
response = requests.delete(url, headers=headers, auth=auth, json={'group': [group_name]})
print(f'Response status code: {response.status_code}')
print(f'Response text: {response.text}')
if response.status_code == 204:
print(f"Groupe {group_name} supprimé du projet {project['name']}")
else:
print(f'Erreur lors de la suppression du groupe du projet {project["name"]}: {response.status_code}: {response.text}')
# Appeler les fonctions pour récupérer les projets, obtenir l'ID du rôle, et supprimer le groupe des projets
projects = get_projects_by_category(JIRA_URL, JIRA_USERNAME, JIRA_API_TOKEN, PROJECT_CATEGORY)
if projects is not None:
role_id = get_role_id(JIRA_URL, JIRA_USERNAME, JIRA_API_TOKEN, ROLE_NAME)
if role_id is not None:
remove_group_from_projects(JIRA_URL, JIRA_USERNAME, JIRA_API_TOKEN, projects, role_id, GROUP_NAME)
else:
print("Aucun projet trouvé ou erreur lors de la récupération des projets.")
--------------------------------------------------------------------------------------
Thank you in advance for helping me.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.