gitextract_9uhgfajq/ ├── .devcontainer/ │ ├── dev.Dockerfile │ ├── devcontainer.json │ └── docker-compose.yml ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── COUNCIL_ISSUE.yaml │ │ ├── COUNCIL_REQUEST.yaml │ │ └── HOME_ASSISTANT_CUSTOM_COMPONENT_ISSUE.yaml │ ├── dependabot.yaml │ └── workflows/ │ ├── behave_pull_request.yml │ ├── behave_schedule.yml │ ├── bump.yml │ ├── codeql-analysis.yml │ ├── docker-image.yml │ ├── ha_compatibility_test.yml │ ├── hacs_validation.yml │ ├── lint.yml │ ├── release.yml │ ├── rollback-release.yml │ ├── validate-release-ready.yml │ └── wiki.yml ├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── COMPATIBILITY.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── behave.ini ├── bin_to_ics.py ├── conftest.py ├── custom_components/ │ ├── __init__.py │ └── uk_bin_collection/ │ ├── README.md │ ├── __init__.py │ ├── calendar.py │ ├── config_flow.py │ ├── const.py │ ├── manifest.json │ ├── sensor.py │ ├── services.yaml │ ├── strings.json │ ├── tests/ │ │ ├── __init__.py │ │ ├── common_utils.py │ │ ├── test_calendar.py │ │ ├── test_config_flow.py │ │ ├── test_init.py │ │ └── test_sensor.py │ └── translations/ │ ├── cy.json │ ├── en.json │ ├── ga.json │ ├── gd.json │ └── pt.json ├── docs/ │ ├── RELEASE-SETUP-SUMMARY.md │ ├── deploy-key-setup.md │ ├── example_council.md │ ├── github-app-setup.md │ ├── github-app-troubleshooting.md │ ├── manual-tag-fix.md │ ├── release-quick-reference.md │ ├── release-workflow-branch-protection.md │ ├── release-workflow-diagram.md │ ├── release-workflow-fixes.md │ ├── release-workflow-migration.md │ ├── release-workflow-setup-checklist.md │ ├── release-workflow.md │ ├── rollback-release.md │ ├── utilities.md │ ├── workflow-improvements-summary.md │ └── workflow-naming-conventions.md ├── hacs.json ├── poetry.lock ├── pyproject.toml ├── pytest.ini ├── scripts/ │ └── check_ha_compatibility.py ├── uk_bin_collection/ │ ├── Local_Authority_Boundaries.geojson │ ├── README.rst │ ├── compare_lad_codes.py │ ├── map.html │ ├── tests/ │ │ ├── check_selenium_url_in_input.json.py │ │ ├── council_feature_input_parity.py │ │ ├── features/ │ │ │ ├── environment.py │ │ │ └── validate_council_outputs.feature │ │ ├── generate_map_test_results.py │ │ ├── input.json │ │ ├── output.schema │ │ ├── step_defs/ │ │ │ ├── step_helpers/ │ │ │ │ └── file_handler.py │ │ │ └── test_validate_council.py │ │ ├── test_collect_data.py │ │ ├── test_common_functions.py │ │ ├── test_conftest.py │ │ └── test_get_data.py │ └── uk_bin_collection/ │ ├── collect_data.py │ ├── common.py │ ├── councils/ │ │ ├── AberdeenCityCouncil.py │ │ ├── AberdeenshireCouncil.py │ │ ├── AdurAndWorthingCouncils.py │ │ ├── AmberValleyBoroughCouncil.py │ │ ├── AngusCouncil.py │ │ ├── AntrimAndNewtonabbeyCouncil.py │ │ ├── ArdsAndNorthDownCouncil.py │ │ ├── ArgyllandButeCouncil.py │ │ ├── ArmaghBanbridgeCraigavonCouncil.py │ │ ├── ArunCouncil.py │ │ ├── AshfieldDistrictCouncil.py │ │ ├── AshfordBoroughCouncil.py │ │ ├── BCPCouncil.py │ │ ├── BaberghDistrictCouncil.py │ │ ├── BarkingDagenham.py │ │ ├── BarnetCouncil.py │ │ ├── BarnsleyMBCouncil.py │ │ ├── BasildonCouncil.py │ │ ├── BasingstokeCouncil.py │ │ ├── BathAndNorthEastSomersetCouncil.py │ │ ├── BedfordBoroughCouncil.py │ │ ├── BedfordshireCouncil.py │ │ ├── BelfastCityCouncil.py │ │ ├── BexleyCouncil.py │ │ ├── BirminghamCityCouncil.py │ │ ├── BlabyDistrictCouncil.py │ │ ├── BlackburnCouncil.py │ │ ├── BlackpoolCouncil.py │ │ ├── BlaenauGwentCountyBoroughCouncil.py │ │ ├── BolsoverCouncil.py │ │ ├── BoltonCouncil.py │ │ ├── BostonBoroughCouncil.py │ │ ├── BracknellForestCouncil.py │ │ ├── BradfordMDC.py │ │ ├── BraintreeDistrictCouncil.py │ │ ├── BrecklandCouncil.py │ │ ├── BrentCouncil.py │ │ ├── BrightonandHoveCityCouncil.py │ │ ├── BristolCityCouncil.py │ │ ├── BroadlandDistrictCouncil.py │ │ ├── BromleyBoroughCouncil.py │ │ ├── BromsgroveDistrictCouncil.py │ │ ├── BroxbourneCouncil.py │ │ ├── BroxtoweBoroughCouncil.py │ │ ├── BuckinghamshireCouncil.py │ │ ├── BurnleyBoroughCouncil.py │ │ ├── BuryCouncil.py │ │ ├── CalderdaleCouncil.py │ │ ├── CambridgeCityCouncil.py │ │ ├── CannockChaseDistrictCouncil.py │ │ ├── CanterburyCityCouncil.py │ │ ├── CardiffCouncil.py │ │ ├── CarmarthenshireCountyCouncil.py │ │ ├── CastlepointDistrictCouncil.py │ │ ├── CeredigionCountyCouncil.py │ │ ├── CharnwoodBoroughCouncil.py │ │ ├── ChelmsfordCityCouncil.py │ │ ├── CheltenhamBoroughCouncil.py │ │ ├── CherwellDistrictCouncil.py │ │ ├── CheshireEastCouncil.py │ │ ├── CheshireWestAndChesterCouncil.py │ │ ├── ChesterfieldBoroughCouncil.py │ │ ├── ChichesterDistrictCouncil.py │ │ ├── ChorleyCouncil.py │ │ ├── ColchesterCityCouncil.py │ │ ├── ConwyCountyBorough.py │ │ ├── CornwallCouncil.py │ │ ├── CotswoldDistrictCouncil.py │ │ ├── CoventryCityCouncil.py │ │ ├── CrawleyBoroughCouncil.py │ │ ├── CroydonCouncil.py │ │ ├── CumberlandCouncil.py │ │ ├── DacorumBoroughCouncil.py │ │ ├── DarlingtonBoroughCouncil.py │ │ ├── DartfordBoroughCouncil.py │ │ ├── DenbighshireCouncil.py │ │ ├── DerbyCityCouncil.py │ │ ├── DerbyshireDalesDistrictCouncil.py │ │ ├── DoncasterCouncil.py │ │ ├── DorsetCouncil.py │ │ ├── DoverDistrictCouncil.py │ │ ├── DudleyCouncil.py │ │ ├── DumfriesandGallowayCouncil.py │ │ ├── DundeeCityCouncil.py │ │ ├── DurhamCouncil.py │ │ ├── EalingCouncil.py │ │ ├── EastAyrshireCouncil.py │ │ ├── EastCambridgeshireCouncil.py │ │ ├── EastDevonDC.py │ │ ├── EastDunbartonshireCouncil.py │ │ ├── EastHertsCouncil.py │ │ ├── EastLindseyDistrictCouncil.py │ │ ├── EastLothianCouncil.py │ │ ├── EastRenfrewshireCouncil.py │ │ ├── EastRidingCouncil.py │ │ ├── EastStaffordshireBoroughCouncil.py │ │ ├── EastSuffolkCouncil.py │ │ ├── EastbourneBoroughCouncil.py │ │ ├── EastleighBoroughCouncil.py │ │ ├── EdenDistrictCouncil.py │ │ ├── EdinburghCityCouncil.py │ │ ├── ElmbridgeBoroughCouncil.py │ │ ├── EnfieldCouncil.py │ │ ├── EnvironmentFirst.py │ │ ├── EppingForestDistrictCouncil.py │ │ ├── EpsomandEwellBoroughCouncil.py │ │ ├── ErewashBoroughCouncil.py │ │ ├── ExeterCityCouncil.py │ │ ├── FalkirkCouncil.py │ │ ├── FarehamBoroughCouncil.py │ │ ├── FenlandDistrictCouncil.py │ │ ├── FermanaghOmaghDistrictCouncil.py │ │ ├── FifeCouncil.py │ │ ├── FlintshireCountyCouncil.py │ │ ├── FolkestoneandHytheDistrictCouncil.py │ │ ├── ForestOfDeanDistrictCouncil.py │ │ ├── FyldeCouncil.py │ │ ├── GatesheadCouncil.py │ │ ├── GedlingBoroughCouncil.py │ │ ├── GlasgowCityCouncil.py │ │ ├── GloucesterCityCouncil.py │ │ ├── GooglePublicCalendarCouncil.py │ │ ├── GosportBoroughCouncil.py │ │ ├── GraveshamBoroughCouncil.py │ │ ├── GreatYarmouthBoroughCouncil.py │ │ ├── GuildfordCouncil.py │ │ ├── GwyneddCouncil.py │ │ ├── HackneyCouncil.py │ │ ├── HaltonBoroughCouncil.py │ │ ├── HarboroughDistrictCouncil.py │ │ ├── HaringeyCouncil.py │ │ ├── HarlowCouncil.py │ │ ├── HarrogateBoroughCouncil.py │ │ ├── HartDistrictCouncil.py │ │ ├── HartlepoolBoroughCouncil.py │ │ ├── HastingsBoroughCouncil.py │ │ ├── HerefordshireCouncil.py │ │ ├── HertsmereBoroughCouncil.py │ │ ├── HighPeakCouncil.py │ │ ├── HighlandCouncil.py │ │ ├── Hillingdon.py │ │ ├── HinckleyandBosworthBoroughCouncil.py │ │ ├── HorshamDistrictCouncil.py │ │ ├── HullCityCouncil.py │ │ ├── HuntingdonDistrictCouncil.py │ │ ├── HyndburnBoroughCouncil.py │ │ ├── IpswichBoroughCouncil.py │ │ ├── IsleOfAngleseyCouncil.py │ │ ├── IslingtonCouncil.py │ │ ├── KingsLynnandWestNorfolkBC.py │ │ ├── KingstonUponThamesCouncil.py │ │ ├── KirkleesCouncil.py │ │ ├── KnowsleyMBCouncil.py │ │ ├── LancasterCityCouncil.py │ │ ├── LeedsCityCouncil.py │ │ ├── LeicesterCityCouncil.py │ │ ├── LewesDistrictCouncil.py │ │ ├── LichfieldDistrictCouncil.py │ │ ├── LincolnCouncil.py │ │ ├── LisburnCastlereaghCityCouncil.py │ │ ├── LiverpoolCityCouncil.py │ │ ├── LondonBoroughCamdenCouncil.py │ │ ├── LondonBoroughEaling.py │ │ ├── LondonBoroughHammersmithandFulham.py │ │ ├── LondonBoroughHarrow.py │ │ ├── LondonBoroughHavering.py │ │ ├── LondonBoroughHounslow.py │ │ ├── LondonBoroughLambeth.py │ │ ├── LondonBoroughLewisham.py │ │ ├── LondonBoroughOfRichmondUponThames.py │ │ ├── LondonBoroughRedbridge.py │ │ ├── LondonBoroughSutton.py │ │ ├── LutonBoroughCouncil.py │ │ ├── MaidstoneBoroughCouncil.py │ │ ├── MaldonDistrictCouncil.py │ │ ├── MalvernHillsDC.py │ │ ├── ManchesterCityCouncil.py │ │ ├── MansfieldDistrictCouncil.py │ │ ├── MedwayCouncil.py │ │ ├── MeltonBoroughCouncil.py │ │ ├── MertonCouncil.py │ │ ├── MidAndEastAntrimBoroughCouncil.py │ │ ├── MidDevonCouncil.py │ │ ├── MidSuffolkDistrictCouncil.py │ │ ├── MidSussexDistrictCouncil.py │ │ ├── MidUlsterDistrictCouncil.py │ │ ├── MiddlesbroughCouncil.py │ │ ├── MidlothianCouncil.py │ │ ├── MiltonKeynesCityCouncil.py │ │ ├── MoleValleyDistrictCouncil.py │ │ ├── MonmouthshireCountyCouncil.py │ │ ├── MorayCouncil.py │ │ ├── NeathPortTalbotCouncil.py │ │ ├── NewForestCouncil.py │ │ ├── NewarkAndSherwoodDC.py │ │ ├── NewcastleCityCouncil.py │ │ ├── NewcastleUnderLymeCouncil.py │ │ ├── NewhamCouncil.py │ │ ├── NewportCityCouncil.py │ │ ├── NorthAyrshireCouncil.py │ │ ├── NorthDevonCountyCouncil.py │ │ ├── NorthEastDerbyshireDistrictCouncil.py │ │ ├── NorthEastLincs.py │ │ ├── NorthHertfordshireDistrictCouncil.py │ │ ├── NorthKestevenDistrictCouncil.py │ │ ├── NorthLanarkshireCouncil.py │ │ ├── NorthLincolnshireCouncil.py │ │ ├── NorthNorfolkDistrictCouncil.py │ │ ├── NorthNorthamptonshireCouncil.py │ │ ├── NorthSomersetCouncil.py │ │ ├── NorthTynesideCouncil.py │ │ ├── NorthWarwickshireBoroughCouncil.py │ │ ├── NorthWestLeicestershire.py │ │ ├── NorthYorkshire.py │ │ ├── NorthumberlandCouncil.py │ │ ├── NorwichCityCouncil.py │ │ ├── NottinghamCityCouncil.py │ │ ├── NuneatonBedworthBoroughCouncil.py │ │ ├── OadbyAndWigstonBoroughCouncil.py │ │ ├── OldhamCouncil.py │ │ ├── OxfordCityCouncil.py │ │ ├── PembrokeshireCountyCouncil.py │ │ ├── PerthAndKinrossCouncil.py │ │ ├── PeterboroughCityCouncil.py │ │ ├── PlymouthCouncil.py │ │ ├── PortsmouthCityCouncil.py │ │ ├── PowysCouncil.py │ │ ├── PrestonCityCouncil.py │ │ ├── ReadingBoroughCouncil.py │ │ ├── RedcarandClevelandCouncil.py │ │ ├── RedditchBoroughCouncil.py │ │ ├── ReigateAndBansteadBoroughCouncil.py │ │ ├── RenfrewshireCouncil.py │ │ ├── RhonddaCynonTaffCouncil.py │ │ ├── RochdaleCouncil.py │ │ ├── RochfordCouncil.py │ │ ├── RotherDistrictCouncil.py │ │ ├── RotherhamCouncil.py │ │ ├── RoyalBoroughofGreenwich.py │ │ ├── RugbyBoroughCouncil.py │ │ ├── RunnymedeBoroughCouncil.py │ │ ├── RushcliffeBoroughCouncil.py │ │ ├── RushmoorCouncil.py │ │ ├── SalfordCityCouncil.py │ │ ├── SandwellBoroughCouncil.py │ │ ├── SeftonCouncil.py │ │ ├── SevenoaksDistrictCouncil.py │ │ ├── SheffieldCityCouncil.py │ │ ├── ShropshireCouncil.py │ │ ├── SloughBoroughCouncil.py │ │ ├── SolihullCouncil.py │ │ ├── SomersetCouncil.py │ │ ├── SouthAyrshireCouncil.py │ │ ├── SouthCambridgeshireCouncil.py │ │ ├── SouthDerbyshireDistrictCouncil.py │ │ ├── SouthGloucestershireCouncil.py │ │ ├── SouthHamsDistrictCouncil.py │ │ ├── SouthHollandDistrictCouncil.py │ │ ├── SouthKestevenDistrictCouncil.py │ │ ├── SouthLanarkshireCouncil.py │ │ ├── SouthNorfolkCouncil.py │ │ ├── SouthOxfordshireCouncil.py │ │ ├── SouthRibbleCouncil.py │ │ ├── SouthStaffordshireDistrictCouncil.py │ │ ├── SouthTynesideCouncil.py │ │ ├── SouthamptonCityCouncil.py │ │ ├── SouthwarkCouncil.py │ │ ├── SpelthorneBoroughCouncil.py │ │ ├── StAlbansCityAndDistrictCouncil.py │ │ ├── StHelensBC.py │ │ ├── StaffordBoroughCouncil.py │ │ ├── StaffordshireMoorlandsDistrictCouncil.py │ │ ├── StevenageBoroughCouncil.py │ │ ├── StirlingCouncil.py │ │ ├── StockportBoroughCouncil.py │ │ ├── StocktonOnTeesCouncil.py │ │ ├── StokeOnTrentCityCouncil.py │ │ ├── StratfordUponAvonCouncil.py │ │ ├── StroudDistrictCouncil.py │ │ ├── SunderlandCityCouncil.py │ │ ├── SurreyHeathBoroughCouncil.py │ │ ├── SwaleBoroughCouncil.py │ │ ├── SwanseaCouncil.py │ │ ├── SwindonBoroughCouncil.py │ │ ├── TamesideMBCouncil.py │ │ ├── TandridgeDistrictCouncil.py │ │ ├── TeignbridgeCouncil.py │ │ ├── TelfordAndWrekinCouncil.py │ │ ├── TendringDistrictCouncil.py │ │ ├── TestValleyBoroughCouncil.py │ │ ├── TewkesburyBoroughCouncil.py │ │ ├── ThanetDistrictCouncil.py │ │ ├── ThreeRiversDistrictCouncil.py │ │ ├── ThurrockCouncil.py │ │ ├── TonbridgeAndMallingBC.py │ │ ├── TorbayCouncil.py │ │ ├── TorridgeDistrictCouncil.py │ │ ├── TunbridgeWellsCouncil.py │ │ ├── UttlesfordDistrictCouncil.py │ │ ├── ValeofGlamorganCouncil.py │ │ ├── ValeofWhiteHorseCouncil.py │ │ ├── WakefieldCityCouncil.py │ │ ├── WalsallCouncil.py │ │ ├── WalthamForest.py │ │ ├── WandsworthCouncil.py │ │ ├── WarringtonBoroughCouncil.py │ │ ├── WarwickDistrictCouncil.py │ │ ├── WatfordBoroughCouncil.py │ │ ├── WaverleyBoroughCouncil.py │ │ ├── WealdenDistrictCouncil.py │ │ ├── WelhatCouncil.py │ │ ├── WestBerkshireCouncil.py │ │ ├── WestDunbartonshireCouncil.py │ │ ├── WestLancashireBoroughCouncil.py │ │ ├── WestLindseyDistrictCouncil.py │ │ ├── WestLothianCouncil.py │ │ ├── WestMorlandAndFurness.py │ │ ├── WestNorthamptonshireCouncil.py │ │ ├── WestOxfordshireDistrictCouncil.py │ │ ├── WestSuffolkCouncil.py │ │ ├── WiganBoroughCouncil.py │ │ ├── WiltshireCouncil.py │ │ ├── WinchesterCityCouncil.py │ │ ├── WindsorAndMaidenheadCouncil.py │ │ ├── WirralCouncil.py │ │ ├── WokingBoroughCouncil.py │ │ ├── WokinghamBoroughCouncil.py │ │ ├── WolverhamptonCityCouncil.py │ │ ├── WorcesterCityCouncil.py │ │ ├── WrexhamCountyBoroughCouncil.py │ │ ├── WychavonDistrictCouncil.py │ │ ├── WyreCouncil.py │ │ ├── WyreForestDistrictCouncil.py │ │ ├── YorkCouncil.py │ │ ├── council_class_template/ │ │ │ └── councilclasstemplate.py │ │ └── tests/ │ │ ├── conftest.py │ │ ├── test_south_kesteven_district_council.py │ │ └── test_south_kesteven_integration.py │ ├── create_new_council.py │ └── get_bin_data.py ├── uk_bin_collection_api_server/ │ ├── Dockerfile │ ├── docker-compose.yml │ ├── requirements.txt │ ├── server.py │ └── swagger.yaml └── wiki/ ├── Councils.md ├── Home.md ├── Setup.md └── generate_wiki.py