You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JIRA API筛选特定日期后添加的用户及设置项目查询条件

解决JIRA筛选指定日期后新增用户的问题

首先,search_users()方法本身不支持直接传入日期或项目过滤条件,因为JIRA的用户搜索API端点没有提供这类参数。可以通过以下两种方式实现需求:

方案1:拉取所有用户后本地过滤(无需管理员权限)

先获取所有用户,再通过用户对象的created字段筛选出指定日期之后创建的账号。代码示例:

from jira import JIRA
from datetime import datetime

# 初始化JIRA连接
jira = JIRA('<company-jira-url>', basic_auth=('username', 'password'))

# 指定筛选起始日期(格式:YYYY-MM-DD)
target_date = datetime.strptime('2024-01-01', '%Y-%m-%d')

# 获取所有用户("."匹配所有用户)
users = jira.search_users(".")

# 遍历筛选符合条件的用户
for user in users:
    jira_user = jira.user(user.name)
    # 将用户创建时间转为datetime对象
    user_created_date = datetime.strptime(jira_user.created[:10], '%Y-%m-%d')
    if user_created_date >= target_date:
        print(f"用户名: {jira_user.name}, 邮箱: {jira_user.emailAddress}, 创建时间: {jira_user.created}")

方案2:调用管理员API直接过滤(需管理员权限)

如果你的账号拥有JIRA管理员权限,可以直接调用JIRA的用户管理API,通过createdAfter参数直接过滤,避免拉取全部用户:

from jira import JIRA

jira = JIRA('<company-jira-url>', basic_auth=('admin-username', 'admin-password'))

# 指定日期格式为ISO 8601(例如:2024-01-01T00:00:00.000Z)
created_after = '2024-01-01T00:00:00.000Z'

# 调用管理员API获取符合条件的用户
response = jira._session.get(
    f"{jira.options['server']}/rest/api/3/users/search",
    params={'createdAfter': created_after, 'maxResults': 1000}
)
response.raise_for_status()
filtered_users = response.json()

# 输出结果
for user in filtered_users:
    print(f"用户名: {user['name']}, 邮箱: {user['emailAddress']}, 创建时间: {user['created']}")

注意:

  • 方案1的search_users(".")可能受限于JIRA的用户搜索权限,如果无法获取全部用户,需要联系管理员调整权限。
  • 方案2的API端点仅对管理员开放,普通账号无法调用。

内容的提问来源于stack exchange,提问作者Panda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:20:55