为GHE问题应用过滤器

时间:2018-02-09 16:37:26

标签: java github github-api

我希望使用Java API客户端从GHE获得所有问题而不会出现标签“insfrastructure”的问题

我试过了:

                map.put(IssueService.FILTER_STATE, IssueService.STATE_CLOSED);
                map.put(IssueService.FIELD_DIRECTION, sort_direction);
                map.put(IssueService.FIELD_SINCE, date_from);
                map.put(IssueService.FIELD_FILTER, "-label:infrastructure");

但我仍然遇到这个标签的问题。你知道我怎么解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以在src/main/java/com/github/mobile/ui/issue/IssueDashboardPagerAdapter.java

中查看IssueService.FIELD_FILTER用法的示例
@Override
public Fragment getItem(final int position) {
    String filter = null;
    switch (position) {
    case 0:
        filter = FILTER_SUBSCRIBED;
        break;
    case 1:
        filter = FILTER_ASSIGNED;
        break;
    case 2:
        filter = FILTER_CREATED;
        break;
    case 3:
        filter = FILTER_MENTIONED;
        break;
    default:
        return null;
    }
    final Map<String, String> filterData = new HashMap<String, String>();
    filterData.put(FIELD_FILTER, filter);

这些过滤器值引用org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/IssueService.java

中的预定义值

包括标签。

/**
 * Filter by issue's labels
 */
public static final String FILTER_LABELS = "labels"; //$NON-NLS-1$

标签 s ,带有&#39;

用作:

    List<Label> labels = issue.getLabels();
    if (labels != null) {
        List<String> labelNames = new ArrayList<String>(labels.size());
        for (Label label : labels)
            labelNames.add(label.getName());
        params.put(FILTER_LABELS, labelNames);
    }