简体   繁体   English

获取 Github 里程碑中的所有问题

[英]Get all issues in Github Milestone

I want to get all issues in Github with Java client for exact Milestone.我想使用 Java 客户端获取 Github 中的所有问题以获得确切的里程碑。 I tried this:我试过这个:

public void listClosedIssuesInMilestone(String host, String token, String repository_name, String milestone_name) throws IOException
    {

        GitHubClient client = new GitHubClient(host);
        client.setOAuth2Token(token);

        RepositoryService service = new RepositoryService(client);

        List<Repository> repositories = service.getRepositories();

        MilestoneService milestones = new MilestoneService(client);

        for (int z = 0; z < repositories.size(); z++)
        {
            Repository repository = repositories.get(z);

            if (repository.getName().equals(repository_name)) {

                List<Milestone> closedMilestones = milestones.getMilestones(repository, "closed");  

                for (int i = 0; i < closedMilestones.size(); i++)
                {
                    Milestone milestone = closedMilestones.get(i);

                    if (milestone.getTitle().equals(milestone_name)) {

                        // TODO get closed issues here
                    }
                }

            }              
        }
    }    

But I can't find a way to implement this.但我找不到实现这一点的方法。 I can't get the list of issues into milestone.我无法将问题列表放入里程碑。 Can you advice how I can do this?你能建议我怎么做吗?

Use IssueService .使用IssueService Sorry I don't have any project set up to test.抱歉,我没有设置任何项目来测试。 If passing the name directly to milestone doesn't work you may need to get MileStoneService by name and pass the number to the milestone filter.如果将名称直接传递给里程碑不起作用,您可能需要按名称获取MileStoneService并将数字传递给里程碑过滤器。

Something like就像是

RepositoryService service = new RepositoryService(client);
List<Repository> repositories = service.getRepositories();
Repository repository = null;

// Get the repository matching name
for(Repository repo:repositories) {
  if(repo.getName().equals(repository_name)) {
    repository = repo;
    break;
  }
}

List<Issue> issues = new ArrayList<>();
// Get issues in repository
if(repository != null) {
  IssueService issueService = new IssueService(client);
  Map<String,String> filters = new HashMap<>();
  filters.put(IssueService.FILTER_STATE,IssueService.STATE_CLOSED);
  filters.put(IssueService.FILTER_MILESTONE,milestone_name);
  issues = issueService.getIssues(repository,filters);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM