def main(): err_count = 0 jira = JIRA("http://localhost:8080", basic_auth=('pro', 'pro')) rest_groups = pickle.load(open("groupBackup.p", "rb")) for r_group in rest_groups: print("Restore Group Name: "+r_group[0]) jj = 0 for col in r_group: if jj != 0: print(" Name: "+col) try: jira.add_user_to_group(col, r_group[0]) except Exception as e: if "already a member" not in e.text: print(" ERR: "+e.text) err_count = err_count + 1 jj = jj + 1 print("Done - no Errors: " + str(err_count))
class jira: def __init__(self): # load admin credentials with open(".credentials.json") as credentials: self.creds = json.load(credentials) # load new user information with open(".new_user.json") as new_user: self.user = json.load(new_user) self.JIRA_SERVER = self.creds["jira"]["server"] self.JIRA_USERNAME = self.creds["jira"]["username"] self.JIRA_PASSWORD = self.creds["jira"]["password"] self.jc = JIRA(server=self.JIRA_SERVER, basic_auth=(self.JIRA_USERNAME, self.JIRA_PASSWORD)) # add new user to jira (keyprprojects.atlassian.net) def add_user(self): # contractors do not get confluence access, on an as-needed basis if self.user["contractor"].lower() == "f": # username, email, directory(?), password, full name, notification, activation self.jc.add_user(self.user["email"], self.user["email"], 1, self.user["password"], self.user["fullName"], False, True) print("Jira/Confluence: User created - %s" % self.user["email"]) # set users groups def add_group(self): # contractors do not get confluence access, on an as-needed basis if self.user["contractor"].lower() == "f": # Default groups # username, group name self.jc.add_user_to_group(self.user["email"], "internal-dev") self.jc.add_user_to_group(self.user["email"], "confluence-users") print("Jira/Confluence: Groups added - internal-dev, jira-users, confluence-users") def remove_group(self): self.jc.remove_user_from_group(self.user["email"], "internal-dev") self.jc.remove_user_from_group(self.user["email"], "confluence-users") self.jc.remove_user_from_group(self.user["email"], "jira-users") print("Jira/Confluence: Removed user from groups [internal-dev, confluence-users, jira-users]")
class jira(): def __init__(self): pass def auth(self): PWD = os.getenv("HOME") with open("%s/.python_auth_cfg.yml" % PWD, 'r') as auth: auth_conf = yaml.load(auth, Loader=yaml.FullLoader) jira_conf = auth_conf['jira'] jira_admin_user = jira_conf['admin_user'] jira_admin_api_token = jira_conf['admin_api_token'] jira_basic_url = jira_conf['jira_basic_url'] self.jira_basic_url = jira_basic_url self.jira_options = { 'server' : jira_basic_url, 'max_retries' : 1 } try: self._session = JIRA(self.jira_options, basic_auth=(jira_admin_user, jira_admin_api_token)) except JIRAError and TypeError and KeyError as error: print('jira.init.auth <%s>' % error) return self._session def user_invite(self, email): self.USERNAME = email.split('@')[0] try: self._session.add_user(self.USERNAME, email, active=True) except JIRAError as error: print('jira.init.user_invite <%s>' % error.text) def user_delete(self, username): try: DELETE_USER = self._session.delete_user(username) except JIRAError as error: print('jira.init.user_delete <%s>' % error.text) def user_blocked(self, username): DEACTIVATE_USER = self._session.deactivate_user(username) try: DELETE_USER = self._session.deactivate_user(username) except JIRAError and TypeError and KeyError as error: print('jira_api_user.init.user_blocked <%s>' % error) def user_add_group(self, groupName): time.sleep(15) with open("config/jira_group_access.yml", 'r') as jira_group_access: jira_group_access = yaml.load(jira_group_access, Loader=yaml.FullLoader) try: group_list = jira_group_access[groupName] for group in group_list: try: self._session.add_user_to_group(self.USERNAME , group) except JIRAError and TypeError and KeyError as error: print('jira_api_user.init.user_add_group <%s>' % error) except KeyError as error: print('init.user_add_group | add default group | Error < groupName: %s is not defined >' % groupName)