Repository navigation
feat: add gov source for central-government tenders (mr.gov.il) - #4
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A
govsource for central-government tenders (ministries and other bodies), read from the GovernmentProcurement Administration portal, mr.gov.il. The portal has no JSON API, so the source parses its server-rendered
search page. It is part of the default sources.
GovSourceandGovExtra(public),SourceName.GOV.HttpClient.get_text: same rate limit, cache, retries and error handling as the JSON methods, for HTML pages.past their submission date).
No city council sources are in this PR. data.gov.il has no live municipal feed besides Beer Sheva, and the other
city sites I probed each need their own parser. They can follow as separate sources.
Verified (how)
(123 + 256 + 40) match the counts the portal reports itself. 183 are still open by deadline, 14 have no deadline.
make checkpasses: ruff, mypy --strict, 193 tests. Coverage 99% overall, 100% for gov.py.sentence was edited to match the excerpt (noted in docs/sources.md).
Believed, not verified
documentsis empty.Michraz()searches now include about 25 extra requests on a cold cache (around 20 s). Cached for anhour after that.
Tests
non-search page, HTTP 503).
closing-window filters, and the CLI printing gov tenders as JSON.
recorded fixtures would have started failing once the fixture deadlines passed (around 2026-11-10).
Real output from the live portal: