From 0706546c753f4ee8e79a4a6bb45ed770ebe04393 Mon Sep 17 00:00:00 2001 From: Bogdan Popa Date: Sat, 18 Jul 2020 13:48:29 +0300 Subject: [PATCH] ci: add action to create and update badges --- .github/actions/update-badge/.gitignore | 1 + .github/actions/update-badge/README.md | 21 ++ .github/actions/update-badge/action.yml | 17 + .github/actions/update-badge/endpoint.js | 91 +++++ .github/actions/update-badge/index.js | 87 +++++ .github/actions/update-badge/package.json | 8 + .github/actions/update-badge/yarn.lock | 333 ++++++++++++++++++ .github/workflows/update-badge.yml | 36 ++ CONTRIBUTING.md | 10 +- README.md | 398 +++++++++++----------- scripts/add-badges.py | 33 -- 11 files changed, 799 insertions(+), 236 deletions(-) create mode 100644 .github/actions/update-badge/.gitignore create mode 100644 .github/actions/update-badge/README.md create mode 100644 .github/actions/update-badge/action.yml create mode 100644 .github/actions/update-badge/endpoint.js create mode 100644 .github/actions/update-badge/index.js create mode 100644 .github/actions/update-badge/package.json create mode 100644 .github/actions/update-badge/yarn.lock create mode 100644 .github/workflows/update-badge.yml delete mode 100755 scripts/add-badges.py diff --git a/.github/actions/update-badge/.gitignore b/.github/actions/update-badge/.gitignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/.github/actions/update-badge/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/.github/actions/update-badge/README.md b/.github/actions/update-badge/README.md new file mode 100644 index 00000000..c684ac0d --- /dev/null +++ b/.github/actions/update-badge/README.md @@ -0,0 +1,21 @@ +# Update badge action + +This action fetches last commit time of repositories and generates the badge for advent-of-code. + +## Inputs + +### `ghToken` + +**Required** GitHub token + +### `inputFile` + +**Required** File path of README.md + +### `outputFile` + +**Required** File path of updated README.md + +## Outputs + +No output. The output file will be changed directly. You can use another action to commit. diff --git a/.github/actions/update-badge/action.yml b/.github/actions/update-badge/action.yml new file mode 100644 index 00000000..04a5e90d --- /dev/null +++ b/.github/actions/update-badge/action.yml @@ -0,0 +1,17 @@ +name: 'Update badge' +description: 'Fetches last commit time of repositories and generates badges' +inputs: + ghToken: + description: 'GitHub token' + required: true + inputFile: + description: 'File path of README.md' + required: true + default: 'README.md' + outputFile: + description: 'File path of output' + required: true + default: 'README-badge.md' +runs: + using: 'node12' + main: 'index.js' \ No newline at end of file diff --git a/.github/actions/update-badge/endpoint.js b/.github/actions/update-badge/endpoint.js new file mode 100644 index 00000000..7089e08d --- /dev/null +++ b/.github/actions/update-badge/endpoint.js @@ -0,0 +1,91 @@ +// modifiy based on https://runkit.com/melnikow/version-from-requirements-txt +const axios = require('axios'); +const moment = require('moment'); + +const badgeDefaults = { + schemaVersion: 1, + label: 'last commit', +} + +async function handle(octokit, { owner, repo, sha = 'master' }) { + let lastCommitDayStr + try { + const { data: commitList } = await Promise.race([ + new Promise(resolve => setTimeout(resolve, 10 * 1000)), + octokit.repos.listCommits({ + owner, + repo, + sha + }) + ]) + lastCommitDayStr = commitList[0].commit.author.date + } catch (e) { + if (e.message.indexOf('rate limit exceeded') !== -1) { + throw e; + } + + console.log(`[${owner }/${repo}] ${e.message}`) + return { message: 'resource not available', color: 'red' } + } + + const message = moment(lastCommitDayStr).format('YYYY-MM-DD') + return { + message, + color: age(message), + } +} + +module.exports = async function invokeHandler(octokit, query) { + return Object.assign({}, badgeDefaults, await handle(octokit, query)) +} + +// copy from https://github.com/badges/shields +function colorScale(steps, colors, reversed) { + if (steps === undefined) { + throw Error('When invoking colorScale, steps should be provided.') + } + + const defaultColors = { + 1: ['red', 'brightgreen'], + 2: ['red', 'yellow', 'brightgreen'], + 3: ['red', 'yellow', 'green', 'brightgreen'], + 4: ['red', 'yellow', 'yellowgreen', 'green', 'brightgreen'], + 5: ['red', 'orange', 'yellow', 'yellowgreen', 'green', 'brightgreen'], + } + + if (typeof colors === 'undefined') { + if (steps.length in defaultColors) { + colors = defaultColors[steps.length] + } else { + throw Error(`No default colors for ${steps.length} steps.`) + } + } + + if (steps.length !== colors.length - 1) { + throw Error( + 'When colors are provided, there should be n + 1 colors for n steps.' + ) + } + + if (reversed) { + colors = Array.from(colors).reverse() + } + + return value => { + const stepIndex = steps.findIndex(step => value < step) + + // For the final step, stepIndex is -1, so in all cases this expression + // works swimmingly. + return colors.slice(stepIndex)[0] + } +} + +function age(date) { + const now = moment() + const dec1st = moment([now.year(), 11, 1]) + if (now.diff(dec1st) < 0) dec1st.add(-1, 'y') + + const daysElapsed = moment(date).diff(moment(dec1st), 'days') + 1 + const colorByAge = colorScale([0, 5, 10, 20, 25], undefined, false) + return colorByAge(daysElapsed) +} diff --git a/.github/actions/update-badge/index.js b/.github/actions/update-badge/index.js new file mode 100644 index 00000000..487199e1 --- /dev/null +++ b/.github/actions/update-badge/index.js @@ -0,0 +1,87 @@ +const fs = require('fs') +const core = require('@actions/core') +const github = require('@actions/github') +const endpoint = require('./endpoint') + +let octokit + +try { + const ghToken = core.getInput('ghToken') + const inputFile = core.getInput('inputFile') + const outputFile = core.getInput('outputFile') + + const content = fs.readFileSync(inputFile, 'utf8') + const lines = content.split('\n') + core.startGroup('Extract repositories') + const repos = extractRepositories(lines) + core.info(`count=${repos.length}`) + core.endGroup() + + octokit = github.getOctokit(ghToken) + core.startGroup('Fetch repositories') + Promise.all(repos.map(({ repoStr }) => generateLine(repoStr))) + .then((newLines) => { + core.endGroup() + + newLines.forEach((line, i) => { + if (shouldUpdate(lines[repos[i].index], line)) { + lines[repos[i].index] = line + } + }) + + core.startGroup('Writing to file') + fs.writeFileSync(outputFile, lines.join('\n')) + core.info(`Finished writing to ${outputFile}`) + core.endGroup() + }) + .catch(error => { + core.setFailed(error.message) + }) +} catch (error) { + core.setFailed(error.message) +} + +function extractRepositories(lines) { + const repos = [] + + let collect = false + lines.some((line, index) => { + if (line === '### Solutions') { + collect = true + } else if (collect) { + const idx1 = line.indexOf('[') + const idx2 = line.indexOf(']') + if (idx1 >= 0 && idx2 >= 0) { + repos.push({ + index, + repoStr: line.slice(idx1 + 1, idx2) + }) + } + } + + return false + }) + + return repos +} + +async function generateLine(repoStr) { + const badge = await generateBadge(repoStr) + return `* [${repoStr}](https://github.com/${repoStr}) ![Last Commit on GitHub](${badge})` +} + +async function generateBadge(repoStr) { + const [owner, repo] = repoStr.split('/') + const { label, message, color } = await endpoint(octokit, { owner, repo }) + + core.info(`...fetched repo ${repoStr}`) + + return 'https://img.shields.io/badge/' + [label, message, color] + .map(s => encodeURIComponent(s.replace(/\-/g, '--'))) + .join('-') +} + +function shouldUpdate(oldLine, newLine) { + const badDateReg = /red\)$/ + return badDateReg.test(oldLine) || !badDateReg.test(newLine) +} diff --git a/.github/actions/update-badge/package.json b/.github/actions/update-badge/package.json new file mode 100644 index 00000000..874ba38a --- /dev/null +++ b/.github/actions/update-badge/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "@actions/core": "^1.2.4", + "@actions/github": "3.0.0", + "axios": "^0.19.2", + "moment": "^2.26.0" + } +} diff --git a/.github/actions/update-badge/yarn.lock b/.github/actions/update-badge/yarn.lock new file mode 100644 index 00000000..9cccb6e4 --- /dev/null +++ b/.github/actions/update-badge/yarn.lock @@ -0,0 +1,333 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@actions/core@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.4.tgz#96179dbf9f8d951dd74b40a0dbd5c22555d186ab" + integrity sha512-YJCEq8BE3CdN8+7HPZ/4DxJjk/OkZV2FFIf+DlZTC/4iBlzYCD5yjRR6eiOS5llO11zbRltIRuKAjMKaWTE6cg== + +"@actions/github@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@actions/github/-/github-3.0.0.tgz#ce1b721a266ad5ac522da0c9c013c999009604bf" + integrity sha512-zSYo0Pzh/AZt0DCBjCUhd9lNBECbbWnPqq5L32DZDTuEhjGJM8VSgOpKSol9climaJxhPJQhu+vUZIZuQi4Z1w== + dependencies: + "@actions/http-client" "^1.0.3" + "@octokit/core" "^2.5.1" + "@octokit/plugin-paginate-rest" "^2.2.0" + "@octokit/plugin-rest-endpoint-methods" "^3.10.0" + +"@actions/http-client@^1.0.3": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.8.tgz#8bd76e8eca89dc8bcf619aa128eba85f7a39af45" + integrity sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA== + dependencies: + tunnel "0.0.6" + +"@octokit/auth-token@^2.4.0": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + dependencies: + "@octokit/types" "^5.0.0" + +"@octokit/core@^2.5.1": + version "2.5.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-2.5.4.tgz#f7fbf8e4f86c5cc2497a8887ba2561ec8d358054" + integrity sha512-HCp8yKQfTITYK+Nd09MHzAlP1v3Ii/oCohv0/TW9rhSLvzb98BOVs2QmVYuloE6a3l6LsfyGIwb6Pc4ycgWlIQ== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/graphql" "^4.3.1" + "@octokit/request" "^5.4.0" + "@octokit/types" "^5.0.0" + before-after-hook "^2.1.0" + universal-user-agent "^5.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.3.tgz#dd09b599662d7e1b66374a177ab620d8cdf73487" + integrity sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^3.0.0" + universal-user-agent "^5.0.0" + +"@octokit/graphql@^4.3.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.1.tgz#162aed1490320b88ce34775b3f6b8de945529fa9" + integrity sha512-qgMsROG9K2KxDs12CO3bySJaYoUu2aic90qpFrv7A8sEBzZ7UFGvdgPKiLw5gOPYEYbS0Xf8Tvf84tJutHPulQ== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^5.0.0" + universal-user-agent "^5.0.0" + +"@octokit/plugin-paginate-rest@^2.2.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.2.tgz#d78f6ff2f188753ff217e51e3415a997cd6abce8" + integrity sha512-3OO/SjB5BChRTVRRQcZzpL0ZGcDGEB2dBzNhfqVqqMs6WDwo7cYW8cDwxqW8+VvA78mDK/abXgR/UrYg4HqrQg== + dependencies: + "@octokit/types" "^5.0.0" + +"@octokit/plugin-rest-endpoint-methods@^3.10.0": + version "3.17.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.17.0.tgz#d8ba04eb883849dd98666c55bf49d8c9fe7be055" + integrity sha512-NFV3vq7GgoO2TrkyBRUOwflkfTYkFKS0tLAPym7RNpkwLCttqShaEGjthOsPEEL+7LFcYv3mU24+F2yVd3npmg== + dependencies: + "@octokit/types" "^4.1.6" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.1.tgz#49bd71e811daffd5bdd06ef514ca47b5039682d1" + integrity sha512-5lqBDJ9/TOehK82VvomQ6zFiZjPeSom8fLkFVLuYL3sKiIb5RB8iN/lenLkY7oBmyQcGP7FBMGiIZTO8jufaRQ== + dependencies: + "@octokit/types" "^4.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.3.0", "@octokit/request@^5.4.0": + version "5.4.5" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.5.tgz#8df65bd812047521f7e9db6ff118c06ba84ac10b" + integrity sha512-atAs5GAGbZedvJXXdjtKljin+e2SltEs48B3naJjqWupYl2IUBbB/CJisyjbNHcKpHzb3E+OYEZ46G8eakXgQg== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" + deprecation "^2.0.0" + is-plain-object "^3.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^5.0.0" + +"@octokit/types@^4.0.1", "@octokit/types@^4.1.6": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-4.1.10.tgz#e4029c11e2cc1335051775bc1600e7e740e4aca4" + integrity sha512-/wbFy1cUIE5eICcg0wTKGXMlKSbaAxEr00qaBXzscLXpqhcwgXeS6P8O0pkysBhRfyjkKjJaYrvR1ExMO5eOXQ== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.0.1.tgz#5459e9a5e9df8565dcc62c17a34491904d71971e" + integrity sha512-GorvORVwp244fGKEt3cgt/P+M0MGy4xEDbckw+K5ojEezxyMDgCaYPKVct+/eWQfZXOT7uq0xRpmrl/+hliabA== + dependencies: + "@types/node" ">= 8" + +"@types/node@>= 8": + version "14.0.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9" + integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA== + +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== + dependencies: + isobject "^4.0.0" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + +macos-release@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" + integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== + +moment@^2.26.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a" + integrity sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch@^2.3.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +tunnel@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +universal-user-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" + integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== + dependencies: + os-name "^3.1.0" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +windows-release@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.1.tgz#cb4e80385f8550f709727287bf71035e209c4ace" + integrity sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A== + dependencies: + execa "^1.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= diff --git a/.github/workflows/update-badge.yml b/.github/workflows/update-badge.yml new file mode 100644 index 00000000..b01bdc49 --- /dev/null +++ b/.github/workflows/update-badge.yml @@ -0,0 +1,36 @@ +name: Update AoC badge + +on: + pull_request: + schedule: + - cron: '0 0 * 1-11 1' + - cron: '0 0 * 12 *' + +jobs: + update: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v2 + with: + ref: ${{ contains(github.event_name, 'pull_request') && github.event.pull_request.head.sha || github.ref }} + fetch-depth: 0 + + - name: Install packages + run: yarn + working-directory: ./.github/actions/update-badge + + - name: Use local action + uses: ./.github/actions/update-badge + with: + ghToken: ${{ secrets.GITHUB_TOKEN }} + inputFile: README.md + outputFile: README.md + + - name: Git commit and push + run: | + git config user.email 'actions@github.com' + git config user.name 'github-actions' + git add README.md + git commit -m 'update badges' + git push origin HEAD:${{ contains(github.event_name, 'pull_request') && github.head_ref || 'master' }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7192a3e3..fd3e2942 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,12 +1,14 @@ # Contributing To add a new repository to the list, find the appropriate section for -the repository's language and add a new entry like this: +the repository's language and add a new entry like this for +GitHub-hosted repos: - * (https://github.com/username/repo) + * [username/repo] -Save the file and then run `./scripts/add-badges.py` on the command -line and then commit your changes. +or like this for non-GH repos: + + * [username/repo](https://somewhere-else.com/username/repo) Don't link to files or folder within the tree since that messes up the badges. Users will be able to figure out where the code for the diff --git a/README.md b/README.md index b3473bc9..b309a3ca 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in Ada.* -* [jamestomasino/advent-of-code-2019](https://github.com/jamestomasino/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jamestomasino/advent-of-code-2019.svg) +* [jamestomasino/advent-of-code-2019](https://github.com/jamestomasino/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) #### Bash @@ -126,83 +126,83 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in C.* * [coder5506/advent-of-code-2019](https://github.com/coder5506/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/coder5506/advent-of-code-2019.svg) -* [tneish/advent-of-code-2019](https://github.com/tneish/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/tneish/advent-of-code-2019.svg) +* [tneish/advent-of-code-2019](https://github.com/tneish/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--05--26-brightgreen) #### C# *Solutions to AoC in C#.* -* [AnkurSheel/AdventOfCode2019](https://github.com/AnkurSheel/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/AnkurSheel/AdventOfCode2019.svg) -* [alexchro93/AdventOfCode](https://github.com/alexchro93/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/alexchro93/AdventOfCode.svg) -* [eduherminio/AoC2019](https://github.com/eduherminio/AoC2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/eduherminio/AoC2019.svg) -* [encse/adventofcode](https://github.com/encse/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/encse/adventofcode.svg) -* [sanraith/aoc2019](https://github.com/sanraith/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/sanraith/aoc2019.svg) -* [sindrekjr/AdventOfCode](https://github.com/sindrekjr/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/sindrekjr/AdventOfCode.svg) -* [tstavropoulos/AdventOfCode2019](https://github.com/tstavropoulos/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/tstavropoulos/AdventOfCode2019.svg) -* [viceroypenguin/adventofcode](https://github.com/viceroypenguin/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/viceroypenguin/adventofcode.svg) +* [AnkurSheel/AdventOfCode2019](https://github.com/AnkurSheel/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [alexchro93/AdventOfCode](https://github.com/alexchro93/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--13-yellowgreen) +* [eduherminio/AoC2019](https://github.com/eduherminio/AoC2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--05--03-brightgreen) +* [encse/adventofcode](https://github.com/encse/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--03-brightgreen) +* [sanraith/aoc2019](https://github.com/sanraith/aoc2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--10-brightgreen) +* [sindrekjr/AdventOfCode](https://github.com/sindrekjr/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--19-yellowgreen) +* [tstavropoulos/AdventOfCode2019](https://github.com/tstavropoulos/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--23-green) +* [viceroypenguin/adventofcode](https://github.com/viceroypenguin/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--20-green) #### C++ *Solutions to AoC in C++.* -* [TheRealMolen/adventofcode2019](https://github.com/TheRealMolen/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/TheRealMolen/adventofcode2019.svg) +* [TheRealMolen/adventofcode2019](https://github.com/TheRealMolen/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--17-brightgreen) * [bwearley/advent-of-code-2019](https://gitlab.com/bwearley/advent-of-code-2019/) * [moxenseya/advent-of-code-2019](https://github.com/moxenseya/Advent_Of_Code_2019/)![Last Commit on GitHub](https://img.shields.io/github/last-commit/moxenseya/Advent_Of_Code_2019.svg) -* [rrrlw/advent-of-code-2019](https://github.com/rrrlw/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/rrrlw/advent-of-code-2019.svg) -* [voivoid/advent-of-code](https://github.com/voivoid/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/voivoid/advent-of-code.svg) +* [rrrlw/advent-of-code-2019](https://github.com/rrrlw/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--30-brightgreen) +* [voivoid/advent-of-code](https://github.com/voivoid/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--06--19-brightgreen) #### Clojure *Solutions to AoC in Clojure.* -* [agrison/advent-of-code-2019](https://github.com/agrison/advent-of-code-2019/) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/agrison/advent-of-code-2019.svg) -* [alexparlett/advent-of-code-2019](https://github.com/alexparlett/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/alexparlett/advent-of-code-2019.svg) -* [erdos/advent-of-code-2019](https://github.com/erdos/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/erdos/advent-of-code-2019.svg) -* [fctorial/adventofcode2019-clojure](https://github.com/fctorial/adventofcode2019-clojure) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/fctorial/adventofcode2019-clojure.svg) -* [fdlk/advent-2019](https://github.com/fdlk/advent-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/fdlk/advent-2019.svg) -* [felipecortez/advent-of-code](https://github.com/felipecortez/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/felipecortez/advent-of-code.svg) -* [jdlambert/advent-of-code-2019](https://github.com/jdlambert/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jdlambert/advent-of-code-2019.svg) -* [mastercake10/AdventOfCode2019](https://github.com/mastercake10/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mastercake10/AdventOfCode2019.svg) +* [agrison/advent-of-code-2019](https://github.com/agrison/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--09-yellow) +* [alexparlett/advent-of-code-2019](https://github.com/alexparlett/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--30-brightgreen) +* [erdos/advent-of-code-2019](https://github.com/erdos/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--26-brightgreen) +* [fctorial/adventofcode2019-clojure](https://github.com/fctorial/adventofcode2019-clojure) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--28-brightgreen) +* [fdlk/advent-2019](https://github.com/fdlk/advent-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [felipecortez/advent-of-code](https://github.com/felipecortez/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--24-green) +* [jdlambert/advent-of-code-2019](https://github.com/jdlambert/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--26-brightgreen) +* [mastercake10/AdventOfCode2019](https://github.com/mastercake10/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--10-yellowgreen) #### Common Lisp *Solutions to AoC in Common Lisp.* -* [HenryS1/adventofcode](https://github.com/HenryS1/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/HenryS1/adventofcode.svg) +* [HenryS1/adventofcode](https://github.com/HenryS1/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--24-green) * [topikettunen/advent-of-code-2019](https://github.com/topikettunen/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/topikettunen/advent-of-code-2019.svg) #### Crystal *Solutions to AoC in Crystal.* -* [PenguinOwl/advent2019](https://github.com/PenguinOwl/advent2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/PenguinOwl/advent2019.svg) -* [salival1/advent-2019](https://github.com/salival1/advent-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/salival1/advent-2019.svg) +* [PenguinOwl/advent2019](https://github.com/PenguinOwl/advent2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--17-yellowgreen) +* [salival1/advent-2019](https://github.com/salival1/advent-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--02-orange) #### D *Solutions to AoC in D.* -* [jrfondren/adventofcode](https://github.com/jrfondren/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jrfondren/adventofcode.svg) -* [m3m0ry/2019-advent](https://github.com/m3m0ry/2019-advent) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/m3m0ry/2019-advent.svg) +* [jrfondren/adventofcode](https://github.com/jrfondren/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--01-brightgreen) +* [m3m0ry/2019-advent](https://github.com/m3m0ry/2019-advent) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--08-brightgreen) #### Dart *Solutions to AoC in Dart.* -* [Awjin/advent-of-code](https://github.com/Awjin/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Awjin/advent-of-code.svg) -* [ejain/advent-of-code-2019](https://github.com/ejain/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ejain/advent-of-code-2019.svg) -* [julemand101/AdventOfCode2019](https://github.com/julemand101/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/julemand101/AdventOfCode2019.svg) +* [Awjin/advent-of-code](https://github.com/Awjin/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) +* [ejain/advent-of-code-2019](https://github.com/ejain/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--31-brightgreen) +* [julemand101/AdventOfCode2019](https://github.com/julemand101/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--04--30-brightgreen) #### Elixir *Solutions to AoC in Elixir.* -* [Firebain/adventofcode](https://github.com/Firebain/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Firebain/adventofcode.svg) -* [dunyakirkali/aoc](https://github.com/dunyakirkali/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/dunyakirkali/aoc.svg) -* [es1o/adventofcode](https://github.com/es1o/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/es1o/adventofcode.svg) -* [jwarwick/aoc_2019](https://github.com/jwarwick/aoc_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jwarwick/aoc_2019.svg) -* [manniL/aoc-2019-elixir](https://github.com/manniL/aoc-2019-elixir) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/manniL/aoc-2019-elixir.svg) -* [mreishus/aoc](https://github.com/mreishus/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mreishus/aoc.svg) +* [Firebain/adventofcode](https://github.com/Firebain/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--07-yellow) +* [dunyakirkali/aoc](https://github.com/dunyakirkali/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--30-brightgreen) +* [es1o/adventofcode](https://github.com/es1o/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--22-green) +* [jwarwick/aoc_2019](https://github.com/jwarwick/aoc_2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--26-brightgreen) +* [manniL/aoc-2019-elixir](https://github.com/manniL/aoc-2019-elixir) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [mreishus/aoc](https://github.com/mreishus/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--06--08-brightgreen) #### Elm @@ -212,39 +212,39 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in Erlang.* -* [rhbvkleef/aoc2019](https://github.com/rhbvkleef/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/rhbvkleef/aoc2019.svg) +* [rhbvkleef/aoc2019](https://github.com/rhbvkleef/aoc2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--07-brightgreen) #### F# *Solutions to AoC in F#.* -* [CameronAavik/AdventOfCode](https://github.com/CameronAavik/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/CameronAavik/AdventOfCode.svg) -* [ChrisPritchard/AdventOfCode](https://github.com/ChrisPritchard/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ChrisPritchard/AdventOfCode.svg) -* [ThomasGoetzmann/AdventOfCode](https://github.com/ThomasGoetzmann/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ThomasGoetzmann/AdventOfCode.svg) +* [CameronAavik/AdventOfCode](https://github.com/CameronAavik/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [ChrisPritchard/AdventOfCode](https://github.com/ChrisPritchard/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [ThomasGoetzmann/AdventOfCode](https://github.com/ThomasGoetzmann/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--04-brightgreen) #### Go *Solutions to AoC in Go.* -* [GreenLightning/aoc19](https://github.com/GreenLightning/aoc19) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/GreenLightning/aoc19.svg) -* [Ullaakut/aoc19](https://github.com/Ullaakut/aoc19) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Ullaakut/aoc19.svg) -* [chigley/advent2019](https://github.com/chigley/advent2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/chigley/advent2019.svg) -* [davidaayers/advent-of-code-2019](https://github.com/davidaayers/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/davidaayers/advent-of-code-2019.svg) +* [GreenLightning/aoc19](https://github.com/GreenLightning/aoc19) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--29-brightgreen) +* [Ullaakut/aoc19](https://github.com/Ullaakut/aoc19) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) +* [chigley/advent2019](https://github.com/chigley/advent2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--24-green) +* [davidaayers/advent-of-code-2019](https://github.com/davidaayers/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--28-brightgreen) * [devries/advent_of_code_2019](https://github.com/devries/advent_of_code_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/devries/advent_of_code_2019.svg) -* [gliderGeek/adventofcode19](https://github.com/gliderGeek/adventofcode19) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gliderGeek/adventofcode19.svg) -* [hamzah-hayat/adventofcode](https://github.com/hamzah-hayat/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/hamzah-hayat/adventofcode.svg) +* [gliderGeek/adventofcode19](https://github.com/gliderGeek/adventofcode19) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--05-brightgreen) +* [hamzah-hayat/adventofcode](https://github.com/hamzah-hayat/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--03-brightgreen) * [hierynomus/2019-adventofcode.com](https://github.com/hierynomus/code-challenges/tree/master/2019-adventofcode.com) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/hierynomus/code-challenges.svg) -* [howden/advent19](https://github.com/howden/advent19) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/howden/advent19.svg) -* [kissgyorgy/adventofcode2019](https://github.com/kissgyorgy/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kissgyorgy/adventofcode2019.svg) -* [lynerist/Advent-of-code-2019-golang](https://github.com/lynerist/Advent-of-code-2019-golang) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/lynerist/Advent-of-code-2019-golang.svg) -* [mreishus/aoc](https://github.com/mreishus/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mreishus/aoc.svg) -* [pancelor/advent-of-code-solutions](https://github.com/pancelor/advent-of-code-solutions) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/pancelor/advent-of-code-solutions.svg) +* [howden/advent19](https://github.com/howden/advent19) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) +* [kissgyorgy/adventofcode2019](https://github.com/kissgyorgy/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--14-yellowgreen) +* [lynerist/Advent-of-code-2019-golang](https://github.com/lynerist/Advent-of-code-2019-golang) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) +* [mreishus/aoc](https://github.com/mreishus/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--06--08-brightgreen) +* [pancelor/advent-of-code-solutions](https://github.com/pancelor/advent-of-code-solutions) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--22-green) * [sasom/adventofcode19](https://gitlab.com/sasom/adventofcode19) -* [sevaorlov/adventofcode2019](https://github.com/sevaorlov/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/sevaorlov/adventofcode2019.svg) -* [thlacroix/goadvent](https://github.com/thlacroix/goadvent) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/thlacroix/goadvent.svg) -* [williamfhe/advent-of-code-2019](https://github.com/williamfhe/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/williamfhe/advent-of-code-2019.svg) -* [mightymatth/advent-of-code-2019](https://github.com/mightymatth/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mightymatth/advent-of-code-2019.svg) -* [stevotvr/adventofcode2019](https://github.com/stevotvr/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/stevotvr/adventofcode2019.svg) +* [sevaorlov/adventofcode2019](https://github.com/sevaorlov/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--27-brightgreen) +* [thlacroix/goadvent](https://github.com/thlacroix/goadvent) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--24-green) +* [williamfhe/advent-of-code-2019](https://github.com/williamfhe/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--22-green) +* [mightymatth/advent-of-code-2019](https://github.com/mightymatth/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--02-brightgreen) +* [stevotvr/adventofcode2019](https://github.com/stevotvr/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--29-brightgreen) #### Groovy @@ -254,19 +254,19 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in Haskell.* -* [bzuilhof/AdventOfCode](https://github.com/bzuilhof/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/bzuilhof/AdventOfCode.svg) +* [bzuilhof/AdventOfCode](https://github.com/bzuilhof/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) * [ephemient/aoc2019#hs](https://github.com/ephemient/aoc2019/tree/hs) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ephemient/aoc2019/hs.svg) -* [glguy/advent2019](https://github.com/glguy/advent2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/glguy/advent2019.svg) -* [hashedone/advent-of-code-2019-hask](https://github.com/hashedone/advent-of-code-2019-hask) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/hashedone/advent-of-code-2019-hask.svg) -* [nrdmn/adventofcode2019](https://github.com/nrdmn/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/nrdmn/adventofcode2019.svg) -* [Rick-T/Advent-of-Code-2k19](https://github.com/Rick-T/Advent-of-Code-2k19) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Rick-T/Advent-of-Code-2k19.svg) -* [webbiscuit/adventofcode](https://github.com/webbiscuit/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/webbiscuit/adventofcode.svg) +* [glguy/advent2019](https://github.com/glguy/advent2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--03--27-brightgreen) +* [hashedone/advent-of-code-2019-hask](https://github.com/hashedone/advent-of-code-2019-hask) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [nrdmn/adventofcode2019](https://github.com/nrdmn/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [Rick-T/Advent-of-Code-2k19](https://github.com/Rick-T/Advent-of-Code-2k19) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--27-brightgreen) +* [webbiscuit/adventofcode](https://github.com/webbiscuit/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--31-brightgreen) #### Haxe *Solutions to AoC in Haxe.* -* [Gama11/AdventOfCode2019](https://github.com/Gama11/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Gama11/AdventOfCode2019.svg) +* [Gama11/AdventOfCode2019](https://github.com/Gama11/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) #### Idris @@ -276,105 +276,105 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in J.* -* [jitwit/aoc](https://github.com/jitwit/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jitwit/aoc.svg) +* [jitwit/aoc](https://github.com/jitwit/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--07--13-brightgreen) #### Java *Solutions to AoC in Java.* -* [SimonBaars/adventOfCode-2019](https://github.com/SimonBaars/adventOfCode-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/SimonBaars/adventOfCode-2019.svg) -* [SizableShrimp/AdventOfCode2019](https://github.com/SizableShrimp/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/SizableShrimp/AdventOfCode2019.svg) -* [agrison/advent-of-code-2019](https://github.com/agrison/advent-of-code-2019/) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/agrison/advent-of-code-2019.svg) -* [giganova/advent-of-code-2019-java](https://github.com/giganova/advent-of-code-2019-java) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/giganova/advent-of-code-2019-java.svg) -* [niedrist/AdventOfCode](https://github.com/niedrist/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/niedrist/AdventOfCode.svg) -* [thcathy/advent-of-code](https://github.com/thcathy/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/thcathy/advent-of-code.svg) -* [akaritakai/AdventOfCode2019](https://github.com/akaritakai/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/akaritakai/AdventOfCode2019.svg) +* [SimonBaars/adventOfCode-2019](https://github.com/SimonBaars/adventOfCode-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [SizableShrimp/AdventOfCode2019](https://github.com/SizableShrimp/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--20-green) +* [agrison/advent-of-code-2019](https://github.com/agrison/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--09-yellow) +* [giganova/advent-of-code-2019-java](https://github.com/giganova/advent-of-code-2019-java) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--05-yellow) +* [niedrist/AdventOfCode](https://github.com/niedrist/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--29-brightgreen) +* [thcathy/advent-of-code](https://github.com/thcathy/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--24-brightgreen) +* [akaritakai/AdventOfCode2019](https://github.com/akaritakai/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--07-brightgreen) #### JavaScript *Solutions to AoC in JavaScript.* -* [GigaNova/advent-of-code-2019](https://github.com/GigaNova/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/GigaNova/advent-of-code-2019.svg) -* [Jedi-Fullstack-Avengers/AdventOfCode](https://github.com/Jedi-Fullstack-Avengers/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Jedi-Fullstack-Avengers/AdventOfCode.svg) -* [MaxArt2501/advent-of-code-2019](https://github.com/MaxArt2501/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/MaxArt2501/advent-of-code-2019.svg) -* [RaedsLab/advent-of-code](https://github.com/RaedsLab/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/RaedsLab/advent-of-code.svg) -* [arnauddrain/advent-of-code-2019](https://github.com/arnauddrain/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/arnauddrain/advent-of-code-2019.svg) -* [atme/advent-of-code](https://github.com/atme/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/atme/advent-of-code.svg) -* [bureson/advent-of-code-2019](https://github.com/bureson/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/bureson/advent-of-code-2019.svg) +* [GigaNova/advent-of-code-2019](https://github.com/GigaNova/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) +* [Jedi-Fullstack-Avengers/AdventOfCode](https://github.com/Jedi-Fullstack-Avengers/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--20-green) +* [MaxArt2501/advent-of-code-2019](https://github.com/MaxArt2501/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--15-yellowgreen) +* [RaedsLab/advent-of-code](https://github.com/RaedsLab/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--03-orange) +* [arnauddrain/advent-of-code-2019](https://github.com/arnauddrain/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--13-yellowgreen) +* [atme/advent-of-code](https://github.com/atme/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--02-brightgreen) +* [bureson/advent-of-code-2019](https://github.com/bureson/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) * [bwearley/advent-of-code-2019](https://gitlab.com/bwearley/advent-of-code-2019/) -* [chinesedfan/adventofcode](https://github.com/chinesedfan/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/chinesedfan/adventofcode.svg) -* [countzero/advent_of_code](https://github.com/countzero/advent_of_code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/countzero/advent_of_code.svg) -* [danieltrost/adventofcode-2019-solutions-js](https://github.com/danieltrost/adventofcode-2019-solutions-js) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/danieltrost/adventofcode-2019-solutions-js.svg) -* [davidmargolin/Advent-Of-Code-2019](https://github.com/davidmargolin/Advent-Of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/davidmargolin/Advent-Of-Code-2019.svg) -* [entibo/advent-of-code-golf-2019](https://github.com/entibo/advent-of-code-golf-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/entibo/advent-of-code-golf-2019.svg) -* [gamma032steam/Advent-of-code](https://github.com/gamma032steam/Advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gamma032steam/Advent-of-code.svg) -* [gavinhenderson/advent-of-code](https://github.com/gavinhenderson/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gavinhenderson/advent-of-code.svg) -* [imsalahdev/adventofcode-2019](https://github.com/imsalahdev/adventofcode-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/imsalahdev/adventofcode-2019.svg) -* [jackcutting/aoc2019](https://github.com/jackcutting/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jackcutting/aoc2019.svg) -* [mdelerue/AdventOfCode](https://github.com/mdelerue/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mdelerue/AdventOfCode.svg) -* [und3f/advent-of-code-2019](https://github.com/und3f/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/und3f/advent-of-code-2019.svg) -* [vguerrerobosch/advent-of-code-2019](https://github.com/vguerrerobosch/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/vguerrerobosch/advent-of-code-2019.svg) -* [vuryss/aoc-2019](https://github.com/vuryss/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/vuryss/aoc-2019.svg) +* [chinesedfan/adventofcode](https://github.com/chinesedfan/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--07--11-brightgreen) +* [countzero/advent_of_code](https://github.com/countzero/advent_of_code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) +* [danieltrost/adventofcode-2019-solutions-js](https://github.com/danieltrost/adventofcode-2019-solutions-js) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--18-yellowgreen) +* [davidmargolin/Advent-Of-Code-2019](https://github.com/davidmargolin/Advent-Of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) +* [entibo/advent-of-code-golf-2019](https://github.com/entibo/advent-of-code-golf-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--23-green) +* [gamma032steam/Advent-of-code](https://github.com/gamma032steam/Advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--18-yellowgreen) +* [gavinhenderson/advent-of-code](https://github.com/gavinhenderson/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [imsalahdev/adventofcode-2019](https://github.com/imsalahdev/adventofcode-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--19-brightgreen) +* [jackcutting/aoc2019](https://github.com/jackcutting/aoc2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) +* [mdelerue/AdventOfCode](https://github.com/mdelerue/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--04--03-brightgreen) +* [und3f/advent-of-code-2019](https://github.com/und3f/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--08-brightgreen) +* [vguerrerobosch/advent-of-code-2019](https://github.com/vguerrerobosch/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--10-yellowgreen) +* [vuryss/aoc-2019](https://github.com/vuryss/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--07--04-brightgreen) #### Julia *Solutions to AoC in Julia.* -* [goggle/AdventOfCode2019.jl](https://github.com/goggle/AdventOfCode2019.jl) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/goggle/AdventOfCode2019.jl.svg) -* [gsoleilhac/aoc19.jl](https://github.com/gsoleilhac/aoc19.jl) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gsoleilhac/aoc19.jl.svg) -* [kamilbeker/aoc2019.jl](https://github.com/kamilbeker/aoc2019.jl) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kamilbeker/aoc2019.jl.svg) -* [racinmat/advent_of_code_2019](https://github.com/racinmat/advent_of_code_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/racinmat/advent_of_code_2019.svg) -* [Arkoniak/advent_of_code](https://github.com/Arkoniak/advent_of_code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Arkoniak/advent_of_code.svg) +* [goggle/AdventOfCode2019.jl](https://github.com/goggle/AdventOfCode2019.jl) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--03--28-brightgreen) +* [gsoleilhac/aoc19.jl](https://github.com/gsoleilhac/aoc19.jl) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--14-yellowgreen) +* [kamilbeker/aoc2019.jl](https://github.com/kamilbeker/aoc2019.jl) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) +* [racinmat/advent_of_code_2019](https://github.com/racinmat/advent_of_code_2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--23-brightgreen) +* [Arkoniak/advent_of_code](https://github.com/Arkoniak/advent_of_code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--20-brightgreen) #### Kotlin *Solutions to AoC in Kotlin.* -* [0legg/adventofcode](https://github.com/0legg/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/0legg/adventofcode.svg) -* [daafith/advent-of-code-2019](https://github.com/daafith/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/daafith/advent-of-code-2019.svg) +* [0legg/adventofcode](https://github.com/0legg/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--21-green) +* [daafith/advent-of-code-2019](https://github.com/daafith/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--02-orange) * [ephemient/aoc2019#kt](https://github.com/ephemient/aoc2019/tree/kt) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ephemient/aoc2019/kt.svg) -* [hughjdavey/aoc-2019](https://github.com/hughjdavey/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/hughjdavey/aoc-2019.svg) -* [jgoerner/aoc-2019](https://github.com/jgoerner/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jgoerner/aoc-2019.svg) -* [jorispz/aoc-2019](https://github.com/jorispz/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jorispz/aoc-2019.svg) -* [mew/aoc-2019](https://github.com/mew/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mew/aoc-2019.svg) -* [valerakostin/AdventOfCode-2019](https://github.com/valerakostin/AdventOfCode-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/valerakostin/AdventOfCode-2019.svg) +* [hughjdavey/aoc-2019](https://github.com/hughjdavey/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--20-green) +* [jgoerner/aoc-2019](https://github.com/jgoerner/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--19-yellowgreen) +* [jorispz/aoc-2019](https://github.com/jorispz/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--17-yellowgreen) +* [mew/aoc-2019](https://github.com/mew/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) +* [valerakostin/AdventOfCode-2019](https://github.com/valerakostin/AdventOfCode-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--08-brightgreen) #### LDPL *Solutions to AoC in LDPL.* -* [Lartu/adventOfCode2019](https://github.com/Lartu/adventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Lartu/adventOfCode2019.svg) -* [dgarroDC/advent-of-code-2019-ldpl](https://github.com/dgarroDC/advent-of-code-2019-ldpl) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/dgarroDC/advent-of-code-2019-ldpl.svg) +* [Lartu/adventOfCode2019](https://github.com/Lartu/adventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) +* [dgarroDC/advent-of-code-2019-ldpl](https://github.com/dgarroDC/advent-of-code-2019-ldpl) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) #### Nim *Solutions to AoC in Nim.* -* [Coac/advent-of-code-2019](https://github.com/Coac/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Coac/advent-of-code-2019.svg) -* [kaushalmodi/aoc2019](https://github.com/kaushalmodi/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kaushalmodi/aoc2019.svg) +* [Coac/advent-of-code-2019](https://github.com/Coac/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) +* [kaushalmodi/aoc2019](https://github.com/kaushalmodi/aoc2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--14-yellowgreen) #### OCaml *Solutions to AoC in OCaml.* -* [georgek42/AOC2019](https://github.com/georgek42/AOC2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/georgek42/AOC2019.svg) +* [georgek42/AOC2019](https://github.com/georgek42/AOC2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) #### PHP *Solutions to AoC in PHP.* -* [aran112000/Advent-of-Code-2019-PHP](https://github.com/aran112000/Advent-of-Code-2019-PHP) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/aran112000/Advent-of-Code-2019-PHP.svg) -* [cbzink/advent-of-code-2019](https://github.com/cbzink/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/cbzink/advent-of-code-2019.svg) -* [vuryss/aoc-2019](https://github.com/vuryss/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/vuryss/aoc-2019.svg) +* [aran112000/Advent-of-Code-2019-PHP](https://github.com/aran112000/Advent-of-Code-2019-PHP) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--17-yellowgreen) +* [cbzink/advent-of-code-2019](https://github.com/cbzink/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--03-orange) +* [vuryss/aoc-2019](https://github.com/vuryss/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--07--04-brightgreen) #### Perl *Solutions to AoC in Perl.* -* [DadaIsCrazy/adventofcode2019](https://github.com/DadaIsCrazy/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/DadaIsCrazy/adventofcode2019.svg) -* [kcaran/adventofcode2019](https://github.com/kcaran/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kcaran/adventofcode2019.svg) -* [kolcon/adventofcode_2019](https://github.com/kolcon/adventofcode_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kolcon/adventofcode_2019.svg) -* [lskatz/advent-of-code](https://github.com/lskatz/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/lskatz/advent-of-code.svg) +* [DadaIsCrazy/adventofcode2019](https://github.com/DadaIsCrazy/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--03--20-brightgreen) +* [kcaran/adventofcode2019](https://github.com/kcaran/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--10-brightgreen) +* [kolcon/adventofcode_2019](https://github.com/kolcon/adventofcode_2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [lskatz/advent-of-code](https://github.com/lskatz/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--13-yellowgreen) #### Pony @@ -384,82 +384,82 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in Prolog.* -* [kristianhasselknippe/advent-of-code-2019](https://github.com/kristianhasselknippe/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kristianhasselknippe/advent-of-code-2019.svg) +* [kristianhasselknippe/advent-of-code-2019](https://github.com/kristianhasselknippe/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--21-green) #### PowerShell *Solutions to AoC in PowerShell.* -* [Crucerio/adventofcode](https://github.com/Crucerio/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Crucerio/adventofcode.svg) -* [martinkonopka/AdventOfCode2019](https://github.com/martinkonopka/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/martinkonopka/AdventOfCode2019.svg) +* [Crucerio/adventofcode](https://github.com/Crucerio/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--05-yellow) +* [martinkonopka/AdventOfCode2019](https://github.com/martinkonopka/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) #### Python *Solutions to AoC in Python.* -* [0x8b/advent-of-code-2019](https://github.com/0x8b/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/0x8b/advent-of-code-2019.svg) -* [Akumatic/Advent-of-Code](https://github.com/Akumatic/Advent-of-Code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Akumatic/Advent-of-Code.svg) -* [Dementophobia/advent-of-code-2019](https://github.com/Dementophobia/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Dementophobia/advent-of-code-2019.svg) -* [IFinners/advent-of-code](https://github.com/IFinners/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/IFinners/advent-of-code.svg) -* [JasonCannon/advent-of-code-2019](https://github.com/JasonCannon/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/JasonCannon/advent-of-code-2019.svg) -* [JesperDramsch/advent-of-code](https://github.com/JesperDramsch/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/JesperDramsch/advent-of-code.svg) -* [Kurocon/AdventOfCode2019](https://github.com/Kurocon/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Kurocon/AdventOfCode2019.svg) -* [Levivig/AdventOfCode2019](https://github.com/Levivig/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Levivig/AdventOfCode2019.svg) -* [Miccowhy/adventofcode2019](https://github.com/Miccowhy/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Miccowhy/adventofcode2019.svg) -* [PatMyron/advent-of-code](https://github.com/PatMyron/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/PatMyron/advent-of-code.svg) -* [TristoKrempita/advent-of-code](https://github.com/TristoKrempita/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/TristoKrempita/advent-of-code.svg) -* [a-red-christmas/aoc2019-ae](https://github.com/a-red-christmas/aoc2019-ae) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/a-red-christmas/aoc2019-ae.svg) -* [agubelu/Advent-of-Code-2019](https://github.com/agubelu/Advent-of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/agubelu/Advent-of-Code-2019.svg) -* [chase1745/AdventOfCode2019](https://github.com/chase1745/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/chase1745/AdventOfCode2019.svg) -* [dmies/adventOfCode](https://github.com/dmies/adventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/dmies/adventOfCode.svg) -* [elvinyhlee/advent-of-code-2019-python](https://github.com/elvinyhlee/advent-of-code-2019-python) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/elvinyhlee/advent-of-code-2019-python.svg) +* [0x8b/advent-of-code-2019](https://github.com/0x8b/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--12-yellowgreen) +* [Akumatic/Advent-of-Code](https://github.com/Akumatic/Advent-of-Code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--14-yellowgreen) +* [Dementophobia/advent-of-code-2019](https://github.com/Dementophobia/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--26-brightgreen) +* [IFinners/advent-of-code](https://github.com/IFinners/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--13-brightgreen) +* [JasonCannon/advent-of-code-2019](https://github.com/JasonCannon/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [JesperDramsch/advent-of-code](https://github.com/JesperDramsch/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) +* [Kurocon/AdventOfCode2019](https://github.com/Kurocon/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [Levivig/AdventOfCode2019](https://github.com/Levivig/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--02-orange) +* [Miccowhy/adventofcode2019](https://github.com/Miccowhy/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--08-brightgreen) +* [PatMyron/advent-of-code](https://github.com/PatMyron/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--03-orange) +* [TristoKrempita/advent-of-code](https://github.com/TristoKrempita/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--09-yellow) +* [a-red-christmas/aoc2019-ae](https://github.com/a-red-christmas/aoc2019-ae) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [agubelu/Advent-of-Code-2019](https://github.com/agubelu/Advent-of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--30-brightgreen) +* [chase1745/AdventOfCode2019](https://github.com/chase1745/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--05-brightgreen) +* [dmies/adventOfCode](https://github.com/dmies/adventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) +* [elvinyhlee/advent-of-code-2019-python](https://github.com/elvinyhlee/advent-of-code-2019-python) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--05--26-brightgreen) * [ephemient/aoc2019#py](https://github.com/ephemient/aoc2019/tree/py) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ephemient/aoc2019/py.svg) -* [gbusch/AdventOfCode](https://github.com/gbusch/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gbusch/AdventOfCode.svg) -* [iownthegame/AdventofCode2019](https://github.com/iownthegame/AdventofCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/iownthegame/AdventofCode2019.svg) -* [juffalow/advent-of-code](https://github.com/juffalow/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/juffalow/advent-of-code.svg) -* [kjeliasen/AdventOfCode](https://github.com/kjeliasen/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kjeliasen/AdventOfCode.svg) -* [kolcon/adventofcode_2019](https://github.com/kolcon/adventofcode_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/kolcon/adventofcode_2019.svg) -* [mapio/advent-of-code-2019](https://github.com/mapio/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mapio/advent-of-code-2019.svg) -* [mebeim/aoc](https://github.com/mebeim/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mebeim/aoc.svg) +* [gbusch/AdventOfCode](https://github.com/gbusch/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--06-brightgreen) +* [iownthegame/AdventofCode2019](https://github.com/iownthegame/AdventofCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--22-green) +* [juffalow/advent-of-code](https://github.com/juffalow/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--02-orange) +* [kjeliasen/AdventOfCode](https://github.com/kjeliasen/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--29-brightgreen) +* [kolcon/adventofcode_2019](https://github.com/kolcon/adventofcode_2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [mapio/advent-of-code-2019](https://github.com/mapio/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [mebeim/aoc](https://github.com/mebeim/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--11-brightgreen) * [metzbernhard/aoc2019](https://github.com/metzbernhard/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/metzbernhard/aoc2019.svg) -* [mevdschee/AdventOfCode2019](https://github.com/mevdschee/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mevdschee/AdventOfCode2019.svg) -* [mjpieters/adventofcode](https://github.com/mjpieters/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mjpieters/adventofcode.svg) +* [mevdschee/AdventOfCode2019](https://github.com/mevdschee/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--30-brightgreen) +* [mjpieters/adventofcode](https://github.com/mjpieters/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--25-brightgreen) * [mpindaro/advent-of-code-2019](https://bitbucket.org/mpindaro/advent-of-code-2019/src/master/) -* [mreishus/aoc](https://github.com/mreishus/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mreishus/aoc.svg) -* [polhec42/AOC](https://github.com/polhec42/AOC) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/polhec42/AOC.svg) -* [r0f1/adventofcode2019](https://github.com/r0f1/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/r0f1/adventofcode2019.svg) -* [ste001/advent-of-code-2019](https://github.com/ste001/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ste001/advent-of-code-2019.svg) -* [vincent-vega/adventofcode](https://github.com/vincent-vega/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/vincent-vega/adventofcode.svg) +* [mreishus/aoc](https://github.com/mreishus/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--06--08-brightgreen) +* [polhec42/AOC](https://github.com/polhec42/AOC) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--19-brightgreen) +* [r0f1/adventofcode2019](https://github.com/r0f1/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) +* [ste001/advent-of-code-2019](https://github.com/ste001/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) +* [vincent-vega/adventofcode](https://github.com/vincent-vega/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--07--16-brightgreen) * [visini/aoc2019](https://github.com/visini/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/visini/aoc2019.svg) -* [zenieldanaku/AdventOfCode](https://github.com/zenieldanaku/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/zenieldanaku/AdventOfCode.svg) -* [branislavjenco/advent2019](https://github.com/branislavjenco/advent2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/branislavjenco/advent2019.svg) +* [zenieldanaku/AdventOfCode](https://github.com/zenieldanaku/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [branislavjenco/advent2019](https://github.com/branislavjenco/advent2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--10-brightgreen) #### R *Solutions to AoC in R.* -* [Cattiva/adventofcode](https://github.com/Cattiva/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Cattiva/adventofcode.svg) -* [EdwinTh/AoC_2019](https://github.com/EdwinTh/AoC_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/EdwinTh/AoC_2019.svg) -* [Morawski21/Advent-of-Code-2019-in-R](https://github.com/Morawski21/Advent-of-Code-2019-in-R) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Morawski21/Advent-of-Code-2019-in-R.svg) -* [adam-gruer/aoc2019](https://github.com/adam-gruer/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/adam-gruer/aoc2019.svg) -* [akulumbeg/adventofcode](https://github.com/akulumbeg/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/akulumbeg/adventofcode.svg) -* [davidmasp/adventofcode-dmp](https://github.com/davidmasp/adventofcode-dmp) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/davidmasp/adventofcode-dmp.svg) -* [mpjdem/adventofcode2019](https://github.com/mpjdem/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/mpjdem/adventofcode2019.svg) -* [plannapus/AdventOfCode2019](https://github.com/plannapus/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/plannapus/AdventOfCode2019.svg) -* [riinuots/advent2019](https://github.com/riinuots/advent2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/riinuots/advent2019.svg) -* [rrrlw/advent-of-code-2019](https://github.com/rrrlw/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/rrrlw/advent-of-code-2019.svg) +* [Cattiva/adventofcode](https://github.com/Cattiva/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [EdwinTh/AoC_2019](https://github.com/EdwinTh/AoC_2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--17-yellowgreen) +* [Morawski21/Advent-of-Code-2019-in-R](https://github.com/Morawski21/Advent-of-Code-2019-in-R) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--04-orange) +* [adam-gruer/aoc2019](https://github.com/adam-gruer/aoc2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--17-yellowgreen) +* [akulumbeg/adventofcode](https://github.com/akulumbeg/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--03--09-brightgreen) +* [davidmasp/adventofcode-dmp](https://github.com/davidmasp/adventofcode-dmp) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--22-green) +* [mpjdem/adventofcode2019](https://github.com/mpjdem/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--27-brightgreen) +* [plannapus/AdventOfCode2019](https://github.com/plannapus/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--08-brightgreen) +* [riinuots/advent2019](https://github.com/riinuots/advent2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--26-brightgreen) +* [rrrlw/advent-of-code-2019](https://github.com/rrrlw/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--30-brightgreen) #### Racket *Solutions to AoC in Racket.* -* [samdphillips/aoc-2019](https://github.com/samdphillips/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/samdphillips/aoc-2019.svg) +* [samdphillips/aoc-2019](https://github.com/samdphillips/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--17-yellowgreen) #### ReasonML *Solutions to AoC in ReasonML.* -* [believer/advent-of-code](https://github.com/believer/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/believer/advent-of-code.svg) +* [believer/advent-of-code](https://github.com/believer/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--03--17-brightgreen) #### Red @@ -469,81 +469,81 @@ Read [CONTRIBUTING.md](/CONTRIBUTING.md) to learn how to add your own repos. *Solutions to AoC in Ruby.* -* [Kazhuu/advent-of-code-2019](https://github.com/Kazhuu/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Kazhuu/advent-of-code-2019.svg) -* [Keirua/adventofcode-rb](https://github.com/Keirua/adventofcode-rb) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Keirua/adventofcode-rb.svg) -* [Pungsnigel/advent_of_code_2019](https://github.com/Pungsnigel/advent_of_code_2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/Pungsnigel/advent_of_code_2019.svg) -* [gjanee/advent-of-code-2019](https://github.com/gjanee/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gjanee/advent-of-code-2019.svg) +* [Kazhuu/advent-of-code-2019](https://github.com/Kazhuu/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--24-green) +* [Keirua/adventofcode-rb](https://github.com/Keirua/adventofcode-rb) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--10-yellowgreen) +* [Pungsnigel/advent_of_code_2019](https://github.com/Pungsnigel/advent_of_code_2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--05-yellow) +* [gjanee/advent-of-code-2019](https://github.com/gjanee/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--08-brightgreen) #### Rust *Solutions to AoC in Rust.* -* [AlexAegis/advent-of-code](https://github.com/AlexAegis/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/AlexAegis/advent-of-code.svg) -* [AmauryCarrade/AdventOfCode2019](https://github.com/AmauryCarrade/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/AmauryCarrade/AdventOfCode2019.svg) -* [AxlLind/AdventOfCode2019](https://github.com/AxlLind/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/AxlLind/AdventOfCode2019.svg) -* [DarthGandalf/advent-of-code](https://github.com/DarthGandalf/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/DarthGandalf/advent-of-code.svg) -* [alyti/aoc-2019](https://github.com/alyti/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/alyti/aoc-2019.svg) +* [AlexAegis/advent-of-code](https://github.com/AlexAegis/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--05--17-brightgreen) +* [AmauryCarrade/AdventOfCode2019](https://github.com/AmauryCarrade/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [AxlLind/AdventOfCode2019](https://github.com/AxlLind/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--04--25-brightgreen) +* [DarthGandalf/advent-of-code](https://github.com/DarthGandalf/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) +* [alyti/aoc-2019](https://github.com/alyti/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--16-yellowgreen) * [bwearley/advent-of-code-2019](https://gitlab.com/bwearley/advent-of-code-2019/) -* [dashed/advent-of-code](https://github.com/dashed/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/dashed/advent-of-code.svg) -* [fornwall/advent-of-code-2019-rs](https://github.com/fornwall/advent-of-code-2019-rs) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/fornwall/advent-of-code-2019-rs.svg) -* [gr-g/advent-of-code-2019](https://github.com/gr-g/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gr-g/advent-of-code-2019.svg) -* [hashedone/advent-of-code-2019-rust](https://github.com/hashedone/advent-of-code-2019-rust) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/hashedone/advent-of-code-2019-rust.svg) -* [jdlambert/advent-of-code-2019](https://github.com/jdlambert/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jdlambert/advent-of-code-2019.svg) -* [meyerphi/advent-of-code](https://github.com/meyerphi/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/meyerphi/advent-of-code.svg) -* [richardwhiuk/adventofcode](https://github.com/richardwhiuk/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/richardwhiuk/adventofcode.svg) -* [risboo6909/aoc2019-rust](https://github.com/risboo6909/aoc2019-rust) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/risboo6909/aoc2019-rust.svg) -* [RobbieClarken/AdventOfCode2019](https://github.com/RobbieClarken/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/RobbieClarken/AdventOfCode2019.svg) -* [ThePants999/advent-of-code-2019](https://github.com/ThePants999/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/ThePants999/advent-of-code-2019.svg) -* [thorstel/Advent-of-Code-2019](https://github.com/thorstel/Advent-of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/thorstel/Advent-of-Code-2019.svg) -* [timvisee/advent-of-code-2019](https://github.com/timvisee/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/timvisee/advent-of-code-2019.svg) +* [dashed/advent-of-code](https://github.com/dashed/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--04--06-brightgreen) +* [fornwall/advent-of-code-2019-rs](https://github.com/fornwall/advent-of-code-2019-rs) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--06--25-brightgreen) +* [gr-g/advent-of-code-2019](https://github.com/gr-g/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--23-brightgreen) +* [hashedone/advent-of-code-2019-rust](https://github.com/hashedone/advent-of-code-2019-rust) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--14-yellowgreen) +* [jdlambert/advent-of-code-2019](https://github.com/jdlambert/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--26-brightgreen) +* [meyerphi/advent-of-code](https://github.com/meyerphi/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--22-brightgreen) +* [richardwhiuk/adventofcode](https://github.com/richardwhiuk/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--03--30-brightgreen) +* [risboo6909/aoc2019-rust](https://github.com/risboo6909/aoc2019-rust) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--23-brightgreen) +* [RobbieClarken/AdventOfCode2019](https://github.com/RobbieClarken/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--14-brightgreen) +* [ThePants999/advent-of-code-2019](https://github.com/ThePants999/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--04--03-brightgreen) +* [thorstel/Advent-of-Code-2019](https://github.com/thorstel/Advent-of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--27-brightgreen) +* [timvisee/advent-of-code-2019](https://github.com/timvisee/advent-of-code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--20-green) #### Smalltalk *Solutions to AoC in Smalltalk.* -* [thiagoslino/Advent-of-Code-2019](https://github.com/thiagoslino/Advent-of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/thiagoslino/Advent-of-Code-2019.svg) +* [thiagoslino/Advent-of-Code-2019](https://github.com/thiagoslino/Advent-of-Code-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--29-brightgreen) #### Scala *Solutions to AoC in Scala.* -* [FlorianCassayre/AdventOfCode-2019](https://github.com/FlorianCassayre/AdventOfCode-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/FlorianCassayre/AdventOfCode-2019.svg) +* [FlorianCassayre/AdventOfCode-2019](https://github.com/FlorianCassayre/AdventOfCode-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--15-yellowgreen) * [lupari/aoc](https://github.com/lupari/aoc2019/) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/lupari/aoc2019.svg) -* [matelaszlo/advent-of-code-scala](https://github.com/matelaszlo/advent-of-code-scala) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/matelaszlo/advent-of-code-scala.svg) -* [sim642/adventofcode](https://github.com/sim642/adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/sim642/adventofcode.svg) -* [voivoid/scala-adventofcode](https://github.com/voivoid/scala-adventofcode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/voivoid/scala-adventofcode.svg) +* [matelaszlo/advent-of-code-scala](https://github.com/matelaszlo/advent-of-code-scala) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--15-yellowgreen) +* [sim642/adventofcode](https://github.com/sim642/adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--12-brightgreen) +* [voivoid/scala-adventofcode](https://github.com/voivoid/scala-adventofcode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--02--24-brightgreen) #### Scheme *Solutions to AoC in Scheme.* -* [jitwit/aoc](https://github.com/jitwit/aoc) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/jitwit/aoc.svg) -* [nenadom/AdventOfCode](https://github.com/nenadom/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/nenadom/AdventOfCode.svg) +* [jitwit/aoc](https://github.com/jitwit/aoc) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--07--13-brightgreen) +* [nenadom/AdventOfCode](https://github.com/nenadom/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--04-brightgreen) #### Swift *Solutions to AoC in Swift.* -* [davedelong/AOC](https://github.com/davedelong/AOC) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/davedelong/AOC.svg) -* [evilmint/AdventOfCode](https://github.com/evilmint/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/evilmint/AdventOfCode.svg) -* [fguchelaar/AdventOfCode2019](https://github.com/fguchelaar/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/fguchelaar/AdventOfCode2019.svg) -* [gernb/AdventOfCode2019](https://github.com/gernb/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/gernb/AdventOfCode2019.svg) +* [davedelong/AOC](https://github.com/davedelong/AOC) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--22-green) +* [evilmint/AdventOfCode](https://github.com/evilmint/AdventOfCode) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--08-yellow) +* [fguchelaar/AdventOfCode2019](https://github.com/fguchelaar/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--06-brightgreen) +* [gernb/AdventOfCode2019](https://github.com/gernb/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) #### TypeScript *Solutions to AoC in TypeScript.* -* [AlexAegis/advent-of-code](https://github.com/AlexAegis/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/AlexAegis/advent-of-code.svg) -* [caderek/aoc2019](https://github.com/caderek/aoc2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/caderek/aoc2019.svg) -* [florianfreier/AdventOfCode2019](https://github.com/florianfreier/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/florianfreier/AdventOfCode2019.svg) -* [izexi/adventofcode2019](https://github.com/izexi/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/izexi/adventofcode2019.svg) -* [sw-double/advent-of-code](https://github.com/sw-double/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/sw-double/advent-of-code.svg) +* [AlexAegis/advent-of-code](https://github.com/AlexAegis/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--05--17-brightgreen) +* [caderek/aoc2019](https://github.com/caderek/aoc2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--03-brightgreen) +* [florianfreier/AdventOfCode2019](https://github.com/florianfreier/AdventOfCode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--10-yellowgreen) +* [izexi/adventofcode2019](https://github.com/izexi/adventofcode2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--06-yellow) +* [sw-double/advent-of-code](https://github.com/sw-double/advent-of-code) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2020--01--11-brightgreen) #### Unison *Solutions to AoC in Unison.* -* [BenFradet/aoc-2019](https://github.com/BenFradet/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/github/last-commit/BenFradet/aoc-2019.svg) +* [BenFradet/aoc-2019](https://github.com/BenFradet/aoc-2019) ![Last Commit on GitHub](https://img.shields.io/badge/last%20commit-2019--12--25-brightgreen) #### Zig diff --git a/scripts/add-badges.py b/scripts/add-badges.py deleted file mode 100755 index b59c0569..00000000 --- a/scripts/add-badges.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 -import re -import os - -README_PATH = os.path.join(os.path.dirname(__file__), "..", "README.md") -REPO_RE = re.compile(r"https://github.com/(?P[^/]+?)/(?P[^/\)]+?)\)") - -lines = [] -past_solutions = False -with open(README_PATH) as f: - for line in f: - if not past_solutions: - if "### Solutions" in line: - past_solutions = True - - lines.append(line) - continue - - match = REPO_RE.search(line) - if match is not None: - user = match.groupdict()["user"] - repo = match.groupdict()["repo"] - lines.append( - f"* [{user}/{repo}](https://github.com/{user}/{repo}) " - f"![Last Commit on GitHub](https://img.shields.io/github/last-commit/{user}/{repo}.svg)" - f"\n" - ) - - else: - lines.append(line) - -with open(README_PATH, "w") as f: - f.write("".join(lines))