{"id":21783759,"url":"https://github.com/encse/adventofcode-template","last_synced_at":"2025-07-19T18:31:11.228Z","repository":{"id":259491633,"uuid":"877208091","full_name":"encse/adventofcode-template","owner":"encse","description":"C#/.Net template for adventofcode","archived":false,"fork":false,"pushed_at":"2024-12-31T11:03:19.000Z","size":713,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T01:44:53.803Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/encse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-23T09:18:52.000Z","updated_at":"2025-06-05T01:04:11.000Z","dependencies_parsed_at":"2024-10-26T00:24:11.044Z","dependency_job_id":"b518c87a-6338-4a1f-af70-bc1f6ae0019b","html_url":"https://github.com/encse/adventofcode-template","commit_stats":null,"previous_names":["encse/adventofcode-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/encse/adventofcode-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encse%2Fadventofcode-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encse%2Fadventofcode-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encse%2Fadventofcode-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encse%2Fadventofcode-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/encse","download_url":"https://codeload.github.com/encse/adventofcode-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/encse%2Fadventofcode-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265985901,"owners_count":23859954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-27T01:01:07.080Z","updated_at":"2025-07-19T18:31:10.920Z","avatar_url":"https://github.com/encse.png","language":"C#","funding_links":[],"categories":["Project Templates"],"sub_categories":[],"readme":"# Advent of Code\nThis is a C# repository template for your [Advent of Code](https://adventofcode.com) solutions. I've been using this since 2015\nwith [great success](https://github.com/encse/adventofcode). \n\n![](demo.gif)\n\nIt's not a command line tool, but rather a batteries included framework that does the heavy lifting. While you focus on solving the problems it provides:\n\n- input download\n- a solution skeleton generator\n- online answer validation\n- regression tests\n- speed tests\n- up to date calendar in ANSI colors for the terminal, as well as an SVG version for your README.md\n- source lines of code (sloc) chart\n- an OCR for elf fonts.\n\nDue to copyright reasons I'm not allowed to include input files and problem descriptions\nwithin this repository. But I wanted to have a self contained version for myself that I can keep around forever, \nso decided to commit the encrypted version of the input files. It doesn't violate the \ncopyright since it's just random garbage for everyone else but when I check it out, a plugin \ncalled `git-crypt` decrypts all my inputs transparently, so that I can work with them uninterrupted.\n \nOn commit the whole process is reversed and the files get encrypted again.\n\n## Dependencies\n\n- Based on `.NET 9` and `C# 13` \n- `AngleSharp` is used for problem download\n- `git-crypt` to store the input files in an encrypted form\n- the optional `Memento Inputs` extension for Visual Studio Code\n\n## Getting started in 5 steps\n\n1. Clone the repo\n2. Install .NET\n3. Install and initialize git-crypt:\n\n```\n\u003e brew install git-crypt\n\u003e cd repo-dir\n\u003e git-crypt init\n\u003e git-crypt export-key ~/aoc-crypt.key\n```\n\nDon't commit `aoc-crypt.key` into a public repo, back it up in some protected place. \nIf you need to clone your repo later you will need to unlock it using this key such as:\n\n```\n\u003e git clone ...\n\u003e cd repo-dir\n\u003e git-crypt unlock ~/aoc-crypt.key\n```\n4. export your SESSION cookie from the adventofcode.com site in your terminal as an env variable:\n\n```\n\u003e export SESSION=djsaksjakshkja...\n```\n\n5. Get help with `dotnet run` and start coding.\n\n## Working in Visual Studio Code\nIf you prefer, you can work directly in VSCode as well. \n\nOpen the command Palette (⇧ ⌘ P), select `Tasks: Run Task` then e.g. `update today`.\n\nWork on part 1. Check the solution with the `upload today` task. Continue with part 2.\n\n**Note:** this feature relies on the \"Memento Inputs\" extension to store your session cookie, you need \nto set it up in advance from the Command Palette with `Install Extensions`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencse%2Fadventofcode-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fencse%2Fadventofcode-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencse%2Fadventofcode-template/lists"}