2025-08-12 - 2026-08-12

Overview

111 Active Pull Requests
48 Active Issues
Excluding merges, 5 authors have pushed 138 commits to dev and 410 commits to all branches. On dev, 144 files have changed and there have been 22661 additions and 6208 deletions.

111 Pull requests merged by 3 users

Merged #163 Report CI status to the forge and database 2026-08-10 22:58:56 +00:00

Merged #161 Wireup pipeline APIs (getPipeline: listPipelines: listPipelines, getJob) and other misc additions 2026-08-09 21:12:04 +00:00

Merged #159 Add initial container runner implementation and scheduler integration 2026-08-06 16:42:13 +00:00

Merged #156 Add a prototype planner and scheduler 2026-06-22 08:55:16 +00:00

Merged #157 Use alpine Postgres images for disk space savings 2026-06-22 08:51:26 +00:00

Merged #155 allow CI to be trigged manually 2026-06-01 11:29:04 +00:00

Merged #154 adds some forge tests 2026-05-31 17:57:51 +00:00

Merged #153 Make generated table models singular and don't generate models for migrations table 2026-05-30 14:43:58 +00:00

Merged #151 Add Vitest config to calculate Change Risk Anti-Patterns reports 2026-05-30 13:33:00 +00:00

Merged #152 Use native bigint type for Postgres BIGINTs 2026-05-30 13:26:39 +00:00

Merged #150 Allow all hosts for webhooks in the development Gitea server 2026-05-26 11:56:14 +00:00

Merged #149 Add pgCrab schema linter to CI 2026-05-19 06:27:05 +00:00

Merged #148 Ensures Pino logging is used consistently 2026-05-11 21:24:11 +00:00

Merged #147 Load .env for Kanel so pnpm generate succeeds 2026-05-09 16:03:53 +00:00

Merged #146 add ability to get code coverage report 2026-05-09 12:07:25 +00:00

Merged #144 Refactor webhook handling 2026-05-08 17:46:09 +00:00

Merged #145 Fix parseKdlConfigs to return V0Files 2026-05-08 09:09:29 +00:00

Merged #143 Add richer logging with Pino 2026-05-06 22:11:14 +00:00

Merged #138 split api spec into multiple files 2026-05-02 22:29:49 +00:00

Merged #141 Use correct type for ForgeID and UserId in tests 2026-04-24 10:45:27 +00:00

Merged #131 Use Kanel and Kysely to get type-checked queries 2026-04-24 09:45:56 +00:00

Merged #140 Fix StageDeclaration.name type and do some small tidying 2026-04-21 12:51:06 +00:00

Merged #137 Add glossary for all the confusing CI terminology 2026-04-08 22:04:39 +00:00

Merged #136 add test for Graphile token refresh job 2026-03-15 12:30:21 +00:00

Merged #135 add draft apispec for runner and add endpoint to fetch branch names 2026-03-09 21:53:56 +00:00

Merged #134 capt/whoami 2026-02-24 22:56:32 +00:00

Merged #133 Handle unexpected database pool errors 2026-02-24 22:09:34 +00:00

Merged #132 rebrand as corncrake ci 2026-02-24 20:14:55 +00:00

Merged #119 Add a Nix flake that packages the server 2026-02-17 22:18:16 +00:00

Merged #129 Trust proxies (otherwise secure cookies aren't set) but allow disabling 2026-02-17 22:17:53 +00:00

Merged #130 Add Taskfile with task test command 2026-02-17 22:17:34 +00:00

Merged #126 use forge admin checks for repo access and derive forge id from authenticated forge context 2026-02-17 12:12:46 +00:00

Merged #124 Various quality of life improvements 2026-02-07 18:24:29 +00:00

Merged #121 Refactors webhook logic 2026-02-06 22:11:14 +00:00

Merged #123 Refactor: Use namespace import for @bgotink/kdl 2026-02-06 21:14:28 +00:00

Merged #120 return the html_url of a repo to the client 2026-01-23 09:11:11 +00:00

Merged #107 Slightly improve the errors returned from the pipeline check endpoint 2026-01-23 00:12:50 +00:00

Merged #118 Store forge usernames in the database and return username in the whoami endpoint 2026-01-22 21:26:15 +00:00

Merged #117 add comment to env.sample to explain FORGES_1_APPBASEURLOVERRIDE 2026-01-22 11:53:53 +00:00

Merged #116 no longer need to clear webhook secret on reconfigureRepo 2026-01-22 11:53:31 +00:00

Merged #113 Delete stale webhooks 2026-01-21 23:16:58 +00:00

Merged #114 Support configuring a MOLCI baseURL per-forge 2026-01-21 21:47:06 +00:00

Merged #110 listAvailableRepos should only display non configuredRepos 2026-01-21 21:15:58 +00:00

Merged #112 MolCI DB should use same docker network as the other containers do 2026-01-21 20:57:42 +00:00

Merged #108 add way to get forge logo 2026-01-21 20:40:50 +00:00

Merged #106 fix logout 2026-01-20 00:09:51 +00:00

Merged #105 redirect after logout 2026-01-19 22:56:48 +00:00

Merged #103 checkPipelines: require body 2026-01-19 22:19:34 +00:00

Merged #104 reconfigureRepo: return body as described by the API spec 2026-01-19 22:19:28 +00:00

Merged #100 report ci status for molci config file 2026-01-19 22:19:24 +00:00

Merged #102 Detect duplicate jobs and stages 2026-01-19 21:28:58 +00:00

Merged #99 adds check pipelines endpoint 2026-01-19 21:24:43 +00:00

Merged #96 Adds stages and jobs to pipeline language 2026-01-18 16:10:57 +00:00

Merged #94 Initial pipeline language 2026-01-17 20:44:05 +00:00

Merged #92 adds docker demo file 2026-01-10 22:10:23 +00:00

Merged #93 fix type error on setup-webhooks, remove redundant join in SQL 2026-01-10 11:27:17 +00:00

Merged #91 adds improved isValidRedirectPath function 2026-01-06 19:34:59 +00:00

Merged #90 Refactors some webhook and auth logic to prevent code duplication 2026-01-05 22:17:03 +00:00

Merged #86 Move all endpoints under /api, including versioning OpenAPI endpoints 2026-01-04 15:58:06 +00:00

Merged #85 docker networking fixes 2026-01-04 00:46:34 +00:00

Merged #82 Auth improvements 2026-01-02 21:24:35 +00:00

Merged #81 Ensure listConfigureRepos returns repo ids. 2026-01-02 15:13:35 +00:00

Merged #75 Support configuration of server bind address 2026-01-02 13:47:48 +00:00

Merged #76 Webhooks: Fetch raw Gitea file, improve logging, and separate handleWebhook from MolCI API 2026-01-01 12:54:22 +00:00

Merged #72 Handle push and pull_request webhooks 2025-12-31 21:15:09 +00:00

Merged #69 prelim work on handling webhooks from the forge 2025-12-30 22:49:46 +00:00

Merged #64 Regenerate the session on OAuth callback to prevent session fixation attacks 2025-12-28 20:13:22 +00:00

Merged #63 adds Middleware to invalidate session if user's access token is missing/invalid 2025-12-28 17:44:18 +00:00

Merged #68 Ensure webhook is created when reconfigureRepo is called 2025-12-28 17:43:56 +00:00

Merged #65 Add tests to check what happens if you try to get or configure someone else's repo 2025-12-28 17:43:33 +00:00

Merged #61 avoids need for --ts-is-esm-project false flag 2025-12-23 00:54:35 +00:00

Merged #62 Updates types/node dependency 2025-12-23 00:28:21 +00:00

Merged #60 Removes redundant code 2025-12-23 00:25:13 +00:00

Merged #59 Convert project type to ESM module 2025-12-22 02:37:14 +00:00

Merged #58 Use AuthError consistently in repositories.ts 2025-12-22 00:33:16 +00:00

Merged #57 Lock users for token refresh in the background job and getForgeWithUser 2025-12-22 00:22:12 +00:00

Merged #56 Test improvements: only load .env.test and don't show logging for passing tests (it's too noisy) 2025-12-21 21:47:51 +00:00

Merged #54 Use custom error handling instead of throwing generic errors 2025-12-21 19:57:04 +00:00

Merged #55 add job key to setup webhooks job, cleans up createOrUpdateRepository and removes redundant description. 2025-12-21 17:16:50 +00:00

Merged #52 Ensure API tokens refresh via getForgeWithUser 2025-12-21 10:57:51 +00:00

Merged #49 Use graphile to create a job to automatically refresh OAuth tokens 2025-12-20 20:11:13 +00:00

Merged #51 updates readme and sample env file with new configuration options 2025-12-20 20:07:21 +00:00

Merged #47 adds getForgeWithUser, add token refresh logic 2025-12-20 16:18:09 +00:00

Merged #45 Update DB to support encrypted access and refresh tokens 2025-12-19 20:52:56 +00:00

Merged #46 Set a minimum length for the session secret 2025-12-19 16:24:29 +00:00

Merged #44 Fixes path to db migration file 2025-12-18 22:08:09 +00:00

Merged #43 Don't store forgeId in post login session 2025-12-18 21:47:07 +00:00

Merged #41 adds reconfigureRepo 2025-12-17 22:26:18 +00:00

Merged #39 move auth into server directory 2025-12-16 23:54:23 +00:00

Merged #37 Don't hardcode gitea in webhook 2025-12-16 23:36:56 +00:00

Merged #35 consolidation of folder/file structure 2025-12-16 23:23:45 +00:00

Merged #33 Clean up validation errors, improve terminated connection logging and enable Postgres statement logging for tests 2025-12-16 19:43:25 +00:00

Merged #31 Integration Tests for the MOLCI API 2025-12-16 09:04:48 +00:00

Merged #30 Graphile Worker: use the same Pool as the rest of the server 2025-12-15 07:55:12 +00:00

Merged #27 misc/cifix 2025-12-14 17:15:59 +00:00

Merged #25 Adds user store database tests 2025-12-14 16:16:25 +00:00

Merged #23 Update README 2025-12-14 00:58:37 +00:00

Merged #22 Adds basic CI 2025-12-14 00:58:01 +00:00

Merged #20 adds generate-win script 2025-12-13 21:47:36 +00:00

Merged #19 Generate the Gitea API client from OpenAPI definitions 2025-12-13 17:20:27 +00:00

Merged #17 Add error logging to graphile worker 2025-12-12 21:28:31 +00:00

Merged #9 Add test helpers providing dummy forges 2025-12-12 13:03:35 +00:00

Merged #16 Use correct URL for webhooks 2025-12-12 12:23:27 +00:00

Merged #12 Show a Swagger UI API client on /swagger 2025-12-12 11:41:25 +00:00

Merged #13 Remove 'test-win' script 2025-12-12 11:36:59 +00:00

Merged #11 Tidy unwanted columns (and a few other bits) 2025-12-12 11:32:50 +00:00

Merged #10 Replace OpenApi with TypeSpec 2025-12-11 22:26:05 +00:00

Merged #8 Create test Postgres databases; Switch to vitest 2025-12-10 20:46:37 +00:00

Merged #7 capt/webhooks 2025-12-04 17:05:15 +00:00

Merged #2 capt/webhooks 2025-12-01 23:04:35 +00:00

Merged #1 Configuration: use Valibot and allow multiple forges of one type 2025-10-10 11:54:16 +00:00

31 Issues closed from 2 users

Closed #48 add test for auto-refresh logic 2026-03-15 12:30:21 +00:00

Closed #128 listAvailableRepos: have the store tell us which forge_repo_id don't exist. 2026-02-17 12:12:49 +00:00

Closed #125 configureRepo does not validate that the repository actually exists on the forge before storing it in the database 2026-02-07 18:30:22 +00:00

Closed #111 refactor webhooks 2026-02-06 22:11:14 +00:00

Closed #109 /repos/available should not return repos that are already configured 2026-01-21 21:15:58 +00:00

Closed #98 red cross on the forge when CI lang has parsing errors 2026-01-19 22:26:49 +00:00

Closed #97 Parser: create errors when jobs/stages with the same name conflict 2026-01-19 21:29:00 +00:00

Closed #83 For demo purposes, create fully dockerised version of MOLCI 2026-01-10 22:10:24 +00:00

Closed #67 When configuring a repo, remove any other webhook that already exists on the repo 2026-01-10 00:53:09 +00:00

Closed #84 Use host.docker.internal in Docker compose for multi OS compatability 2026-01-04 00:46:36 +00:00

Closed #80 /auth/callback should redirect back to where the client came from 2026-01-02 21:24:37 +00:00

Closed #78 /auth/providers should instead be in the API at e.g. /forges 2026-01-02 21:24:36 +00:00

Closed #79 /auth/login should redirect to the Forge login page instead of returning a JSON body 2026-01-02 21:24:36 +00:00

Closed #77 /repos/configured does not return repo IDs 2026-01-02 15:13:36 +00:00

Closed #71 Support configuring bind/listen address 2026-01-02 13:47:50 +00:00

Closed #73 Webhook: Download the file via the raw gitea endpoint 2026-01-01 12:54:24 +00:00

Closed #70 Support signed webhooks 2025-12-30 22:49:46 +00:00

Closed #38 When user accesses MOLCI and we have no access token for them, we should invalidate their session 2025-12-28 17:44:21 +00:00

Closed #66 reconfigureRepo doesn't reschedule webhook setup 2025-12-28 17:43:57 +00:00

Closed #32 Add test to check what happens if you try to get or configure someone else's repo? 2025-12-28 17:43:34 +00:00

Closed #3 Middleware for 401 auth checks 2025-12-22 00:25:03 +00:00

Closed #50 Should coalesce concurrent requests to refresh a user's access token 2025-12-22 00:22:12 +00:00

Closed #53 Ensure correct HTTP ERROR codes are returned to the client 2025-12-21 19:57:04 +00:00

Closed #6 Handle OAuth token refresh flow for Forges 2025-12-20 20:11:14 +00:00

Closed #21 Validate session secret 2025-12-19 16:24:29 +00:00

Closed #40 Session stores forgeId and userId, but they are actually unrelated 2025-12-18 21:47:09 +00:00

Closed #34 Add ReconfigureRepo 2025-12-17 22:26:19 +00:00

Closed #36 Webhook URL hardcoded to "gitea" (setup-webhooks.ts) 2025-12-16 23:36:57 +00:00

Closed #29 Request validation errors should be 400 not 500 2025-12-16 17:57:06 +00:00

Closed #18 Re-enable exactOptionalPropertyTypes in TypeScript 2025-12-14 22:28:08 +00:00

Closed #4 Split jobs into different files 2025-12-04 17:09:58 +00:00

48 Issues created by 2 users

Opened #3 Middleware for 401 auth checks 2025-12-01 20:08:34 +00:00

Opened #4 Split jobs into different files 2025-12-01 20:20:40 +00:00

Opened #5 Allow configuration of hardcoded graphile settings (e.g poolsize) 2025-12-01 20:35:38 +00:00

Opened #6 Handle OAuth token refresh flow for Forges 2025-12-02 13:38:11 +00:00

Opened #18 Re-enable exactOptionalPropertyTypes in TypeScript 2025-12-12 22:32:41 +00:00

Opened #21 Validate session secret 2025-12-13 15:28:38 +00:00

Opened #26 make it easy for the CI system to just commit the biome fixes back 2025-12-14 16:32:11 +00:00

Opened #28 Speed up our CI tests by using ephemeral Postgres 2025-12-14 17:14:00 +00:00

Opened #29 Request validation errors should be 400 not 500 2025-12-14 22:25:56 +00:00

Opened #32 Add test to check what happens if you try to get or configure someone else's repo? 2025-12-15 23:14:03 +00:00

Opened #34 Add ReconfigureRepo 2025-12-16 15:35:44 +00:00

Opened #36 Webhook URL hardcoded to "gitea" (setup-webhooks.ts) 2025-12-16 15:48:40 +00:00

Opened #38 When user accesses MOLCI and we have no access token for them, we should invalidate their session 2025-12-16 21:19:05 +00:00

Opened #40 Session stores forgeId and userId, but they are actually unrelated 2025-12-17 00:23:28 +00:00

Opened #48 add test for auto-refresh logic 2025-12-20 15:47:51 +00:00

Opened #50 Should coalesce concurrent requests to refresh a user's access token 2025-12-20 19:58:54 +00:00

Opened #53 Ensure correct HTTP ERROR codes are returned to the client 2025-12-20 22:28:13 +00:00

Opened #66 reconfigureRepo doesn't reschedule webhook setup 2025-12-28 00:40:42 +00:00

Opened #67 When configuring a repo, remove any other webhook that already exists on the repo 2025-12-28 01:08:37 +00:00

Opened #70 Support signed webhooks 2025-12-30 10:28:55 +00:00

Opened #71 Support configuring bind/listen address 2025-12-30 22:38:02 +00:00

Opened #73 Webhook: Download the file via the raw gitea endpoint 2025-12-31 17:32:50 +00:00

Opened #74 Use RFC 7807 'Problem Details' for API error responses 2025-12-31 17:50:30 +00:00

Opened #77 /repos/configured does not return repo IDs 2026-01-01 13:53:43 +00:00

Opened #78 /auth/providers should instead be in the API at e.g. /forges 2026-01-01 13:55:24 +00:00

Opened #79 /auth/login should redirect to the Forge login page instead of returning a JSON body 2026-01-01 13:56:54 +00:00

Opened #80 /auth/callback should redirect back to where the client came from 2026-01-01 13:59:29 +00:00

Opened #83 For demo purposes, create fully dockerised version of MOLCI 2026-01-02 17:20:34 +00:00

Opened #84 Use host.docker.internal in Docker compose for multi OS compatability 2026-01-02 23:49:47 +00:00

Opened #87 Allow creating personal access tokens (or similar) for non-frontend API access 2026-01-04 15:07:22 +00:00

Opened #88 Add /api/versions endpoint or similar 2026-01-04 15:09:52 +00:00

Opened #89 Figure out a plan for API versioning 2026-01-04 15:12:20 +00:00

Opened #95 Convert Valibot issues into friendly and context-rich error messages 2026-01-17 20:32:04 +00:00

Opened #97 Parser: create errors when jobs/stages with the same name conflict 2026-01-18 14:28:07 +00:00

Opened #98 red cross on the forge when CI lang has parsing errors 2026-01-18 16:14:48 +00:00

Opened #109 /repos/available should not return repos that are already configured 2026-01-20 09:20:52 +00:00

Opened #111 refactor webhooks 2026-01-21 18:30:05 +00:00

Opened #122 Handle case where a configured repository has been deleted from the forge 2026-01-25 14:16:35 +00:00

Opened #125 configureRepo does not validate that the repository actually exists on the forge before storing it in the database 2026-02-07 17:50:36 +00:00

Opened #127 Investigate use of ntfy.sh/ to notify user of failed CI run 2026-02-08 23:34:48 +00:00

Opened #128 listAvailableRepos: have the store tell us which forge_repo_id don't exist. 2026-02-14 20:46:56 +00:00

Opened #139 Expose and define the 'owner' of a configured repository 2026-04-21 08:20:19 +00:00

Opened #158 Planner/Scheduler/Runner: Sweep up TODOs 2026-06-19 17:20:55 +00:00

Opened #160 Consider remove RunnerJob+RunnerStep and just use PlannedJob+PlannedStep 2026-08-06 16:35:48 +00:00

Opened #162 JOIN at the database rather than one extra query for each workflow 2026-08-09 20:18:42 +00:00

Opened #164 Add more granular CI statuses to report to the forge 2026-08-10 18:11:30 +00:00

Opened #165 Look into per step statuses 2026-08-10 22:31:05 +00:00

Opened #166 have a StepEndStatus and report the exit codes per-step 2026-08-10 22:39:20 +00:00