Skip to content

Commit ec660c2

Browse files
authored
Merge pull request #48 from hborla/fix-subdirectory-extraction
Skip subdirectories under `proposals/` in the network extraction job.
2 parents df3babd + 7a52d32 commit ec660c2

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

Sources/EvolutionMetadataExtraction/ExtractionJob.swift

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,17 @@ extension ExtractionJob {
9595
async let previousResults = ignorePreviousResults ? [] : PreviousResultsFetcher.fetchPreviousResults()
9696

9797
let mainBranchInfo = try await GitHubFetcher.fetchMainBranch()
98-
async let proposalContentItems = GitHubFetcher.fetchProposalContentItems(for: mainBranchInfo.commit.sha)
99-
100-
let proposalSpecs = try await proposalContentItems.enumerated().map { $1.proposalSpec(sortIndex: $0) }
101-
102-
return await ExtractionJob(source: source, output: output, branchInfo: mainBranchInfo, proposalListing: try proposalContentItems, proposalSpecs: proposalSpecs, previousResults: try await previousResults, expectedResults: nil, forcedExtractionIDs: forcedExtractionIDs, toolVersion: toolVersion, extractionDate: extractionDate)
98+
let proposalContentItems = try await GitHubFetcher.fetchProposalContentItems(for: mainBranchInfo.commit.sha)
99+
100+
// The proposals/ directory may have subdirectories for
101+
// proposals from specific workgroups. For now, proposals
102+
// in those subdirectories are filtered out of this proposal
103+
// specs array.
104+
let proposalSpecs = proposalContentItems.enumerated().compactMap {
105+
$1.proposalSpec(sortIndex: $0)
106+
}
107+
108+
return ExtractionJob(source: source, output: output, branchInfo: mainBranchInfo, proposalListing: proposalContentItems, proposalSpecs: proposalSpecs, previousResults: try await previousResults, expectedResults: nil, forcedExtractionIDs: forcedExtractionIDs, toolVersion: toolVersion, extractionDate: extractionDate)
103109
}
104110

105111
private static func makeSnapshotExtractionJob(source: Source, output: Output, ignorePreviousResults: Bool, forcedExtractionIDs: [String], toolVersion: String, extractionDate: Date) throws -> ExtractionJob {

Sources/EvolutionMetadataExtraction/Utilities/Networking.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ struct GitHubContentItem: Codable {
5454
var url: String
5555
var html_url: String
5656
var git_url: String
57-
var download_url: String
57+
var download_url: String?
5858
var type: String
5959
var _links: LinkContainer
6060

@@ -63,9 +63,12 @@ struct GitHubContentItem: Codable {
6363
var git: String
6464
var html: String
6565
}
66-
67-
func proposalSpec(sortIndex: Int) -> ProposalSpec {
68-
ProposalSpec(url: URL(string: download_url)!, sha: sha, sortIndex: sortIndex)
66+
67+
/// Returns `nil` if this content item corresponds to a
68+
/// subdirectory instead of a direct proposal document.
69+
func proposalSpec(sortIndex: Int) -> ProposalSpec? {
70+
guard let download_url else { return nil }
71+
return ProposalSpec(url: URL(string: download_url)!, sha: sha, sortIndex: sortIndex)
6972
}
7073
}
7174

0 commit comments

Comments
 (0)