Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1045 commits
Select commit Hold shift + click to select a range
a1bab38
Merge branch 'feat/e2e-dashboard-tests' of https://github.com/fabiovi…
fabiovincenzi Feb 20, 2026
28b570b
chore: improve error messages in push actions
jescalada Feb 20, 2026
143a9eb
chore: don't throw error on writePack, update tests
jescalada Feb 20, 2026
1ed9bd5
chore: push, don't overwrite history so browser works
andypols Feb 20, 2026
e6cec75
chore: fix push sort order to be latest-first
andypols Feb 20, 2026
960bad5
feat: add ErrorBoundary component to handle errors in Dashboard layout
dcoric Feb 20, 2026
5af1982
Merge remote-tracking branch 'finos/main' into denis-coric/fix-1392-l…
dcoric Feb 21, 2026
a2d3ffd
feat: add validateAttestation function to check attestation questions…
jescalada Feb 21, 2026
f2c0c60
feat: add CompletedAttestation, AttestationAnswer types and fix type …
jescalada Feb 21, 2026
8016d83
fix: failing e2e test due to boolean/string casting in validateAttest…
jescalada Feb 21, 2026
bae44da
refactor: src/services/routes/repo.ts into function, remove unnecessa…
jescalada Feb 21, 2026
8dd60cb
fix: RepoDetails classes and aria-label, PushRequests/PushesTable err…
jescalada Feb 21, 2026
e1a6008
Merge branch 'main' into tab1-update-website
jescalada Feb 23, 2026
692531b
Merge pull request #1286 from tabathad/tab1-update-website
jescalada Feb 23, 2026
c970f67
test: revert test removal due to type errors and use unknown casting …
jescalada Feb 23, 2026
78778ca
chore: add @andypols to list of maintainers
jescalada Feb 23, 2026
5316a81
Merge branch 'main' into add-reject-reason
andypols Feb 23, 2026
14ce0b6
Merge branch 'main' into feat/e2e-dashboard-tests
fabiovincenzi Feb 23, 2026
7ac5912
fix: integration test
andypols Feb 23, 2026
fa6c123
fix: improve error handling and logging in ErrorBoundary and auth ser…
dcoric Feb 23, 2026
67b85b2
Merge remote-tracking branch 'finos/main' into denis-coric/fix-1392-l…
dcoric Feb 23, 2026
5c4329c
Merge pull request #1396 from qube-rt/add-reject-reason
jescalada Feb 23, 2026
473c982
Merge branch 'main' into website-add-andy-to-maintainers
kriswest Feb 23, 2026
5f81021
docs: restructure contributing docs and improve E2E test infrastructure
coopernetes Feb 9, 2026
3974e2d
docs: move usage to quickstart
tabathad Feb 23, 2026
2472f39
Merge branch 'main' into docs/deployment-guide
tabathad Feb 23, 2026
e174392
docs(fix): remove duplicate usage in sidebar
tabathad Feb 23, 2026
0908706
docs: update path to installation page
tabathad Feb 23, 2026
dfa1d88
fix: rm duplicate supertest dependency
andypols Feb 24, 2026
7ee282c
Merge remote-tracking branch 'finos/main' into denis-coric/fix-1392-l…
dcoric Feb 24, 2026
28aac41
Apply suggestion from @kriswest
kriswest Feb 24, 2026
6713757
Merge pull request #1413 from finos/website-add-andy-to-maintainers
kriswest Feb 24, 2026
0bc60bf
Merge branch 'main' into update-quickstart
tabathad Feb 24, 2026
850ea55
Merge branch 'main' into rm-dup-supertest
jescalada Feb 25, 2026
2c2b093
Merge branch 'main' into denis-coric/fix-1392-linked
jescalada Feb 25, 2026
b937878
Merge pull request #1406 from dcoric/denis-coric/fix-1392-linked
jescalada Feb 25, 2026
48614fb
refactor(ui): replace async/await and promise chaining mixing with co…
fabiovincenzi Feb 25, 2026
ad24af3
fix(ssh): use authenticated user identity from transport layer in par…
fabiovincenzi Feb 25, 2026
a56700f
Merge remote-tracking branch 'upstream/main' into ssh-agent-on-pr987
fabiovincenzi Feb 25, 2026
be7759a
fix(pullRemote): restore concurrent request check and directory clean…
fabiovincenzi Feb 25, 2026
c4f36b7
fix(ssh): add proper TypeScript types to SSH key route params
fabiovincenzi Feb 25, 2026
79b6f7c
fix(ssh): use path.join in test assertions for cross-platform path co…
fabiovincenzi Feb 25, 2026
021e901
Merge branch 'main' into rm-dup-supertest
andypols Feb 25, 2026
bc8eedc
Merge pull request #1419 from andypols/rm-dup-supertest
jescalada Feb 25, 2026
977158b
Update website/docs/quickstart/usage.mdx
tabathad Feb 25, 2026
0c1b077
Merge branch 'main' into update-quickstart
tabathad Feb 25, 2026
a28ce83
Merge branch 'main' into 1174-remove-any-and-as-ts-wrapup
jescalada Feb 25, 2026
e828482
fix: rejection contents and type in autoActions.ts
jescalada Feb 25, 2026
d559cab
chore: ignore experimental packages in renovate.json (#1401)
jescalada Feb 26, 2026
a08379a
docs: move installation.mdx into quickstart directory
jescalada Feb 26, 2026
a1e62d3
docs: update sidebars.js
jescalada Feb 26, 2026
3392dd0
chore(deps): update github-actions - workflows - .github/workflows/do…
renovate[bot] Feb 26, 2026
097d2ff
Merge branch 'main' into update-quickstart
kriswest Feb 26, 2026
cd14cec
Merge pull request #1417 from tabathad/update-quickstart
kriswest Feb 26, 2026
f885211
Merge branch 'main' into docs/contrib-fixup
coopernetes Feb 26, 2026
7fb692e
Merge pull request #1398 from RBC/docs/contrib-fixup
coopernetes Feb 26, 2026
ea19387
chore(deps): update httpd:2.4 docker digest to 96b1e8f - localgit - l…
renovate[bot] Feb 26, 2026
9bb8059
Merge pull request #1425 from finos/renovate/localgit-manager
jescalada Feb 27, 2026
a685438
chore(deps): update actions/download-artifact action to v8 - workflow…
renovate[bot] Feb 27, 2026
730b5d1
Merge branch 'main' into move-sort-to-db
andypols Mar 2, 2026
363e3e1
chore: merge upstream main
fabiovincenzi Mar 2, 2026
ec728a0
fix: type error
andypols Mar 2, 2026
186c984
Merge branch 'main' into fix-dashboard-navigation
andypols Mar 2, 2026
fb025a0
Merge branch 'main' into 1174-remove-any-and-as-ts-wrapup
jescalada Mar 2, 2026
9e0ceec
test: fix confusing helper test
jescalada Mar 2, 2026
2105335
Merge pull request #1429 from finos/renovate/workflows-major-8-github…
jescalada Mar 3, 2026
dd291b0
chore(deps): update github-actions - workflows - .github/workflows/e2…
renovate[bot] Mar 3, 2026
96d1dd3
Merge pull request #1426 from finos/renovate/workflows-manager
jescalada Mar 3, 2026
bd82eaa
fix(deps): update dependency axios to ^1.13.6 - git-proxy-cli - packa…
renovate[bot] Mar 3, 2026
f938c42
Merge pull request #1427 from finos/renovate/git-proxy-cli-manager
jescalada Mar 3, 2026
23b69c8
chore(deps): update dependency @eslint/json to v1 - - package.json
renovate[bot] Mar 3, 2026
25277e3
Merge pull request #1434 from finos/renovate/major-1-npm
jescalada Mar 3, 2026
54293b7
Merge branch 'main' into fix-dashboard-navigation
andypols Mar 3, 2026
5b992bd
Merge branch 'main' into move-sort-to-db
andypols Mar 3, 2026
019c8a6
Merge pull request #1431 from qube-rt/move-sort-to-db
kriswest Mar 3, 2026
a177b01
chore(deps): update github-actions to v5 - workflows - .github/workfl…
renovate[bot] Mar 3, 2026
3872b14
Merge pull request #1437 from finos/renovate/workflows-major-5-github…
jescalada Mar 3, 2026
0a25231
Merge branch 'main' into fix-dashboard-navigation
andypols Mar 3, 2026
0448190
Merge pull request #1433 from qube-rt/fix-dashboard-navigation
jescalada Mar 3, 2026
28b337c
chore(deps): update github-actions to v6 - workflows - .github/workfl…
renovate[bot] Mar 3, 2026
53c9353
Merge pull request #1438 from finos/renovate/workflows-major-6-github…
jescalada Mar 3, 2026
f0478ac
chore(deps): update github-actions to v7 - workflows - .github/workfl…
renovate[bot] Mar 3, 2026
1bda10c
Merge pull request #1439 from finos/renovate/workflows-major-7-github…
jescalada Mar 3, 2026
bfa0e72
Merge branch 'main' into improve-test-coverage
jescalada Mar 3, 2026
2d0a092
fix: failing push test due to renamed field
jescalada Mar 3, 2026
b9b684a
Merge branch 'main' into improve-test-coverage
jescalada Mar 3, 2026
887a669
test: fix failing push test due to missing sort entry
jescalada Mar 3, 2026
f3b9e4e
Merge branch 'main' into ssh-agent-on-pr987
fabiovincenzi Mar 4, 2026
cd90d1b
chore: merge upstream main
fabiovincenzi Mar 4, 2026
8606a21
refactor(ui): replace promise chaining with async/await in repo service
fabiovincenzi Mar 4, 2026
5445793
chore: merge upstream main
fabiovincenzi Mar 4, 2026
2949e9e
test(e2e): add repo cleanup commands and fix delete using _id
fabiovincenzi Mar 4, 2026
95d2a8d
fix(e2e): use correct test-owner/test-repo in Cypress commands
fabiovincenzi Mar 4, 2026
0c76acd
fix(e2e): logout after cleaning
fabiovincenzi Mar 4, 2026
5a58db5
Merge pull request #1421 from fabiovincenzi/fix/async-await-consistency
jescalada Mar 4, 2026
1e272b4
chore(deps): update github-actions to v4 - workflows - .github/workfl…
renovate[bot] Mar 4, 2026
2f654fb
test: consolidate duplicate afterAll in testPush
jescalada Mar 4, 2026
bd985e2
Merge branch 'main' into improve-test-coverage
jescalada Mar 4, 2026
a3b612d
test: add cases for 401 and 404 checks in push routes
jescalada Mar 4, 2026
9b8bfed
Merge branch 'improve-test-coverage' of https://github.com/jescalada/…
jescalada Mar 4, 2026
c880780
test: add tests for fetch by ID and filtering
jescalada Mar 4, 2026
d33b3ab
test: add edge case checks for 400, 401, 403
jescalada Mar 4, 2026
6d26ccf
Merge pull request #1441 from finos/renovate/workflows-major-4-github…
jescalada Mar 4, 2026
2afedcc
chore(deps): update github-actions - workflows - .github/workflows/un…
renovate[bot] Mar 4, 2026
39fe246
test: add missing 404 edge case test for approval
jescalada Mar 4, 2026
3c43652
Merge pull request #1440 from finos/renovate/workflows-manager
jescalada Mar 4, 2026
698e39f
Merge branch 'main' into improve-test-coverage
jescalada Mar 4, 2026
fd151da
chore: add CustomTabs to show different push data
andypols Mar 4, 2026
7b504f5
chore: add StepsTimeline to show results from each push action
andypols Mar 4, 2026
6706274
chore: add optional numeric badge
andypols Mar 4, 2026
8f95c5c
chore: make header the primary colour to match dashboard
andypols Mar 4, 2026
ac353de
Merge pull request #1356 from jescalada/improve-test-coverage
jescalada Mar 5, 2026
9fa39cf
Update src/config/validators.ts
jescalada Mar 5, 2026
3fcbc58
Merge branch 'main' into 1174-remove-any-and-as-ts-wrapup
jescalada Mar 5, 2026
da95d85
Merge branch 'main' into 1174-remove-any-and-as-ts-wrapup
jescalada Mar 5, 2026
5f77ec5
refactor: flatten repo test endpoints and fix failing tests
jescalada Mar 5, 2026
0d378ec
fix: remove any types, improve error handler functions
jescalada Mar 5, 2026
5e9adf1
chore: add eslint license header plugin to devDependencies
jescalada Mar 6, 2026
ca6114c
chore: add license header plugin to eslint config, add licenseHeader.js
jescalada Mar 6, 2026
24d1a59
chore: add license headers
jescalada Mar 6, 2026
c6a578e
fix: relative path bug for license header file
jescalada Mar 6, 2026
9e287a1
Merge branch 'main' into display-git-push-actions
andypols Mar 6, 2026
308d747
Merge branch 'main' into feat/e2e-dashboard-tests
fabiovincenzi Mar 6, 2026
492ce79
refactor: remove or replace unnecessary console.log with step.log
jescalada Mar 6, 2026
dbd797b
chore: remove unnecessary ellipses on logs
jescalada Mar 6, 2026
3c68dd9
test: fix logging-reliant tests, remove log stubs/spies
jescalada Mar 8, 2026
90df884
Merge pull request #1447 from jescalada/1002-eslint-plugin-license-he…
jescalada Mar 8, 2026
adf28a1
Merge branch 'main' into 1281-improve-processors-logging
jescalada Mar 8, 2026
6a2cefe
Merge branch 'main' into 1174-remove-any-and-as-ts-wrapup
jescalada Mar 8, 2026
b2126db
chore: npm run lint:fix
jescalada Mar 8, 2026
bab1881
fix: error message check in cypress test
jescalada Mar 8, 2026
6f2d840
Merge branch 'main' into display-git-push-actions
andypols Mar 9, 2026
cdd9335
chore: add missing license headers
andypols Mar 9, 2026
ccef965
Merge branch 'main' into feat/e2e-dashboard-tests
jescalada Mar 9, 2026
1c4ba16
chore: add missing header
fabiovincenzi Mar 9, 2026
2dfb917
Merge branch 'main' into docs/deployment-guide
tabathad Mar 9, 2026
93c5bb6
Update src/proxy/processors/push-action/preReceive.ts
jescalada Mar 10, 2026
c37cbab
Update src/proxy/chain.ts
jescalada Mar 10, 2026
7486aaa
fix: parsePush error handling
jescalada Mar 10, 2026
833543e
chore: fix duplicate apache headers
jescalada Mar 10, 2026
4b7d295
Merge branch '1174-remove-any-and-as-ts-wrapup' of https://github.com…
jescalada Mar 10, 2026
2ee4f68
chore: merge upstream main
fabiovincenzi Mar 11, 2026
c3bd14e
Merge branch 'ssh-agent-on-pr987' of https://github.com/fabiovincenzi…
fabiovincenzi Mar 11, 2026
5e2d0a9
fix: do not overwrite publicKeys on updateUser
fabiovincenzi Mar 11, 2026
a4f12d4
refactor: remove logs for chunks/changes in scanDiff
jescalada Mar 11, 2026
c9a8bb3
chore: ensure Timeline gets steps
andypols Mar 11, 2026
a94864a
chore: ensure errorCount does not fail in steps undefined
andypols Mar 11, 2026
17dc7f2
chore: open first error step
andypols Mar 11, 2026
1c6c541
Merge pull request #1323 from jescalada/1174-remove-any-and-as-ts-wrapup
kriswest Mar 11, 2026
35adcb6
Merge branch 'main' into 1281-improve-processors-logging
jescalada Mar 14, 2026
93286e8
refactor: rename error handling functions, add step error logger
jescalada Mar 14, 2026
b744a20
Merge branch 'main' into feat/e2e-dashboard-tests
jescalada Mar 15, 2026
9f148a4
Merge pull request #1403 from fabiovincenzi/feat/e2e-dashboard-tests
jescalada Mar 15, 2026
7a1ca00
fix: use CompletedAttestation.answers in AttestationView
fabiovincenzi Mar 16, 2026
d65c9b8
Merge pull request #1459 from fabiovincenzi/fix/attestation-view-answ…
jescalada Mar 16, 2026
cd42eeb
chore: remove parsePush logging
jescalada Mar 16, 2026
c6c703e
Merge branch 'main' into 1281-improve-processors-logging
jescalada Mar 16, 2026
864559e
Merge pull request #1448 from jescalada/1281-improve-processors-logging
jescalada Mar 16, 2026
f52760d
chore: bump git-proxy version to 2.0.0-rc.5
jescalada Mar 16, 2026
cc5e5f3
Merge pull request #1461 from finos/rc5-bump
jescalada Mar 16, 2026
264223d
chore: drop node 20 support, replace with 22
jescalada Mar 16, 2026
072563b
chore: run `npm audit fix`
jescalada Mar 16, 2026
142223e
chore: add Artistic-2.0 to allowed licenses
jescalada Mar 16, 2026
e75310d
docs: explain Node deprecation in CONTRIBUTING.md
jescalada Mar 16, 2026
6459080
fix: broken link to usage.mdx
jescalada Mar 17, 2026
a13f35c
Merge branch 'main' into docs/deployment-guide
jescalada Mar 17, 2026
758b2db
Merge pull request #1385 from tabathad/docs/deployment-guide
jescalada Mar 17, 2026
ec1a77d
Merge branch 'main' into display-git-push-actions
andypols Mar 18, 2026
f957ef8
Merge branch 'main' into 1456-drop-node-20-support
jescalada Mar 19, 2026
868652d
chore: remove node 20 from deployment guide, run `npm audit fix`
jescalada Mar 19, 2026
4fa50d3
chore: remove obsolete CI comment
jescalada Mar 19, 2026
00b6a06
chore: show message when no commit data
andypols Mar 19, 2026
ec0a993
Merge pull request #1462 from finos/1456-drop-node-20-support
jescalada Mar 22, 2026
244686a
chore(deps): update github-actions - workflows - .github/workflows/ci…
renovate[bot] Mar 22, 2026
7bbce24
Merge pull request #1465 from finos/renovate/workflows-manager
jescalada Mar 22, 2026
a635ae4
chore(deps): update httpd:2.4 docker digest to 331548c - localgit - l…
renovate[bot] Mar 22, 2026
68bf3db
Merge pull request #1466 from finos/renovate/localgit-manager
jescalada Mar 22, 2026
6ed9a5e
chore(deps): update dependency node to v24 - workflows - .github/work…
renovate[bot] Mar 22, 2026
6f9a16d
Merge branch 'main' into display-git-push-actions
andypols Mar 23, 2026
06bbe90
Merge pull request #1436 from finos/renovate/workflows-major-24-githu…
coopernetes Mar 23, 2026
fca94af
chore(deps): update node.js to v24 - - dockerfile
renovate[bot] Mar 23, 2026
c0ba816
Merge pull request #1445 from finos/renovate/major-24-dockerfile
coopernetes Mar 23, 2026
2cdd607
Update meeting_minutes.md issue tempalte
kriswest Mar 23, 2026
f097a06
Merge pull request #1473 from finos/kriswest-patch-meeting-minutes-te…
jescalada Mar 24, 2026
7d61115
chore(deps): update actions/upload-artifact action to v6 - workflows …
renovate[bot] Mar 24, 2026
212ab9d
Merge pull request #1468 from finos/renovate/workflows-major-6-github…
jescalada Mar 24, 2026
0cf32c2
chore(deps): update github/codeql-action digest to 72c0b0e - workflow…
renovate[bot] Mar 24, 2026
aecfa3d
Merge pull request #1469 from finos/renovate/workflows-manager
jescalada Mar 24, 2026
d48e3e0
chore(deps): update docker/setup-buildx-action action to v4 - workflo…
renovate[bot] Mar 24, 2026
8eb40f1
Merge pull request #1475 from finos/renovate/workflows-major-4-github…
jescalada Mar 24, 2026
e2bfd5f
chore(deps): update github-actions to v7 - workflows - .github/workfl…
renovate[bot] Mar 24, 2026
50f88d7
Merge pull request #1476 from finos/renovate/workflows-major-7-github…
jescalada Mar 24, 2026
8089983
fix(plugins): update sample plugin imports to use package subpath exp…
coopernetes Mar 26, 2026
0332a30
Merge branch 'main' into display-git-push-actions
andypols Mar 26, 2026
232980a
fix: release drafter permission error (#1482)
jescalada Mar 26, 2026
42e5131
Apply suggestion from @coopernetes
coopernetes Mar 26, 2026
01c544f
Merge branch 'main' into display-git-push-actions
andypols Mar 26, 2026
4e2eea8
Merge pull request #1446 from qube-rt/display-git-push-actions
andypols Mar 26, 2026
6529fc3
fix: broken plugin exports
jescalada Mar 25, 2026
e788ab7
Merge pull request #1489 from finos/1474-fix-broken-subpath-exports
jescalada Mar 31, 2026
579345b
ci: split e2e into parallel vitest and cypress jobs
fabiovincenzi Apr 1, 2026
1c57272
ci: add Docker BuildKit cache to e2e workflow
fabiovincenzi Apr 1, 2026
6ecdfc0
ci: add e2e result job to satisfy branch protection check
fabiovincenzi Apr 1, 2026
4b47144
docs: fix link to installation page
gep13 Apr 1, 2026
5e81660
Merge branch 'main' into fix/plugin-sample-exports
coopernetes Apr 1, 2026
3328267
ci: remove redundant artifact upload/download in CI
fabiovincenzi Apr 2, 2026
1d41221
ci: skip redundant npm ci in cypress-io/github-action
fabiovincenzi Apr 2, 2026
084a77a
ci: use --no-fund flag for npm ci
fabiovincenzi Apr 2, 2026
95110da
Update badge link: stages → maturity in README.md
TheJuanAndOnly99 Apr 2, 2026
a7936c6
chore: fix formatting
jescalada Apr 3, 2026
fc085d4
Merge pull request #1491 from gep13/patch-1
jescalada Apr 3, 2026
1c45104
Merge branch 'main' into ci/e2e-optimization
jescalada Apr 3, 2026
6900045
Merge pull request #1490 from fabiovincenzi/ci/e2e-optimization
jescalada Apr 3, 2026
330a12a
Merge branch 'main' into ci/optimize-ci
jescalada Apr 3, 2026
c0b4a8d
Merge pull request #1492 from fabiovincenzi/ci/optimize-ci
jescalada Apr 3, 2026
d4a2c38
Merge branch 'main' into update-badge
jescalada Apr 8, 2026
848746e
Merge branch 'main' into fix/plugin-sample-exports
jescalada Apr 8, 2026
fda6e3c
fix: add missing utils/errors subpath export
fabiovincenzi Apr 9, 2026
8b606df
fix: restrict tsconfig types to node
fabiovincenzi Apr 9, 2026
064a955
fix: update stale imports in CLI test utils
fabiovincenzi Apr 9, 2026
b9bf5c2
fix: handle 403 and unhandled status codes in CLI
fabiovincenzi Apr 9, 2026
0e42bd4
fix: correct test config path and invalidate cache
fabiovincenzi Apr 9, 2026
1b3e695
fix: add attestationConfig to test proxy config
fabiovincenzi Apr 9, 2026
e389ced
ci: add c8 for CLI subprocess coverage
fabiovincenzi Apr 10, 2026
f2a6118
ci: add CLI test coverage script and source maps
fabiovincenzi Apr 10, 2026
103b4f1
ci: add CLI build step to CI workflow
fabiovincenzi Apr 10, 2026
488b22b
ci: add c8 to depcheck ignores
fabiovincenzi Apr 10, 2026
5783c6c
ci: separate CLI coverage output and upload both reports
fabiovincenzi Apr 10, 2026
5696ebf
ci: fix Windows quoting and increase test timeout for CLI
fabiovincenzi Apr 10, 2026
4d337c4
chore: add coverage-cli to gitignore
fabiovincenzi Apr 10, 2026
ba4f08e
Merge pull request #1499 from fabiovincenzi/fix/cli-restore
jescalada Apr 13, 2026
0821c36
Merge branch 'main' into ci/cli-test-coverage
fabiovincenzi Apr 13, 2026
25d1239
Merge pull request #1500 from fabiovincenzi/ci/cli-test-coverage
jescalada Apr 13, 2026
ab44342
Merge branch 'main' into fix/plugin-sample-exports
kriswest Apr 13, 2026
70d42d5
Merge pull request #1484 from finos/fix/plugin-sample-exports
jescalada Apr 13, 2026
b8f0d0b
chore: bump git-proxy to v2.0.0-rc.6
jescalada Apr 14, 2026
a827aa3
chore: npm run audit
jescalada Apr 15, 2026
2019faf
Merge pull request #1502 from finos/bump-to-rc.6
jescalada Apr 16, 2026
53c9fc3
chore: improve docker-publish.yml flow
jescalada Apr 19, 2026
bec60df
Merge branch 'main' into update-badge
kriswest Apr 20, 2026
1dbb249
Merge branch 'main' into improve-docker-publish-flow
kriswest Apr 20, 2026
e4715f2
Merge pull request #1505 from jescalada/improve-docker-publish-flow
kriswest Apr 20, 2026
4469ed7
Merge branch 'main' into update-badge
06kellyjac Apr 20, 2026
6981427
Merge pull request #1493 from finos/update-badge
kriswest Apr 20, 2026
53a3f3a
Merge remote-tracking branch 'upstream/main' into ssh-agent-on-pr987
fabiovincenzi Apr 22, 2026
6056c34
fix(security): validate req.body is a Buffer before parsing pkt-lines
fabiovincenzi Apr 22, 2026
fac846d
fix(security): add typeof/isArray guards to satisfy CodeQL type-confu…
fabiovincenzi Apr 22, 2026
2452a1e
fix(security): prevent shell injection in ssh-keyscan host verification
fabiovincenzi Apr 22, 2026
ccf8b63
refactor(ssh): centralize ssh2 internal API access with version guards
fabiovincenzi Apr 22, 2026
d9fffe3
chore: run format
fabiovincenzi Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default — maintainers own everything
* @finos/git-proxy-maintainers
14 changes: 3 additions & 11 deletions .github/ISSUE_TEMPLATE/meeting_minutes.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@ YYYYMMDD - time

- [Register for future meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/95849833904?password=99413314-d03a-4b1c-b682-1ede2c399595&invite=true)

## Untracked attendees

- Full Name, Affiliation, (optional) GitHub username
- ...

## Meeting notices

- FINOS **Project leads** are responsible for observing the FINOS guidelines for [running project meetings](https://community.finos.org/docs/governance/meeting-procedures/). Project maintainers can find additional resources in the [FINOS Maintainers Cheatsheet](https://community.finos.org/docs/finos-maintainers-cheatsheet).
Expand All @@ -34,19 +29,16 @@ YYYYMMDD - time
## Agenda

- [ ] Convene & roll call (5mins)
- [ ] Display [FINOS Antitrust Policy summary slide](https://community.finos.org/Compliance-Slides/Antitrust-Compliance-Slide.pdf)
- [ ] Review Meeting Notices (see above)
- [ ] Display [FINOS Antitrust Policy summary slide](https://community.finos.org/Compliance-Slides/Antitrust-Compliance-Slide.pdf) and review Meeting Notices (see above)
- [ ] Approve past meeting minutes
- [ ] Agenda item 1
- [ ] Agenda item 2
- [ ] ...
- [ ] AOB, Q&A & Adjourn (5mins)

## Decisions Made
## Meeting Minutes

- [ ] Decision 1
- [ ] Decision 2
- [ ] ...
...

## Action Items

Expand Down
137 changes: 109 additions & 28 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,36 +13,37 @@ permissions:
pull-requests: write

jobs:
build:
build-ubuntu:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
node-version: [20.x]
mongodb-version: [4.4]
node-version: [22.x, 24.x]
mongodb-version: ['6.0', '7.0', '8.0']

steps:
- name: Harden Runner
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit

- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: ${{ matrix.node-version }}

- name: Start MongoDB
uses: supercharge/mongodb-github-action@90004df786821b6308fb02299e5835d0dae05d0d # 1.12.0
uses: supercharge/mongodb-github-action@315db7fe45ac2880b7758f1933e6e5d59afd5e94 # 1.12.1
with:
mongodb-version: ${{ matrix.mongodb-version }}

- name: Install dependencies
run: npm i
run: npm ci --no-fund

# for now only check the types of the server
# tsconfig isn't quite set up right to respect what vite accepts
Expand All @@ -53,41 +54,121 @@ jobs:
- name: Build TypeScript
run: npm run build-ts

- name: Build CLI
run: |
npm run build -w @finos/git-proxy-cli
npm rebuild @finos/git-proxy-cli

- name: Test
id: test
run: |
npm run test-coverage-ci
npm run test-coverage-ci --workspaces --if-present

- name: MongoDB Integration Tests
env:
RUN_MONGO_TESTS: 'true'
GIT_PROXY_MONGO_CONNECTION_STRING: mongodb://localhost:27017/git-proxy-test
run: npm run test:integration

- name: Upload test coverage report
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3
with:
files: ./coverage/lcov.info
files: ./coverage/lcov.info,./coverage-cli/lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
# - name: Exit if coverage condition not met
# if: ${{ steps.test.outputs.exit_code }} != 0
# run: exit ${{ steps.test.outputs.exit_code }}

- name: Build frontend
run: npm run build-ui

- name: Save build folder
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: build
if-no-files-found: error
path: build

- name: Download the build folders
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
with:
name: build
path: build

- name: Run cypress test
uses: cypress-io/github-action@b8ba51a856ba5f4c15cf39007636d4ab04f23e3c # v6.10.2
uses: cypress-io/github-action@4c06c48f3ffea349b7189aa06dfcda47a9fa7b92 # v7.1.8
with:
# skip the action's internal npm ci — dependencies are already installed above
install: false
start: npm start &
wait-on: 'http://localhost:3000'
wait-on-timeout: 120
run: npm run cypress:run
command: npm run cypress:run

# Windows build - single combination for development support
build-windows:
runs-on: windows-latest

steps:
- name: Harden Runner
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit

- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

- name: Use Node.js 24.x
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 24.x

- name: Enable Windows Developer Mode
shell: powershell
run: |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" /t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"

- name: Install dependencies
run: npm ci --no-fund

- name: Check Types (Server)
run: npm run check-types:server

- name: Build TypeScript
run: npm run build-ts

- name: Build CLI
run: |
npm run build -w @finos/git-proxy-cli
npm rebuild @finos/git-proxy-cli

- name: Test
id: test
shell: bash
run: |
npm run test-coverage-ci
npm run test-coverage-ci --workspaces --if-present

- name: Build frontend
run: npm run build-ui

# Execute a final job to collect the results and report a single check status
results:
if: ${{ always() }}
runs-on: ubuntu-latest
name: build result
needs: [build-ubuntu, build-windows]
steps:
- name: Check build results
run: |
ubuntu_result="${{ needs.build-ubuntu.result }}"
windows_result="${{ needs.build-windows.result }}"
if [[ ($ubuntu_result == "success" || $ubuntu_result == "skipped") && ($windows_result == "success" || $windows_result == "skipped") ]]; then
echo "### ✅ All builds passed" >> $GITHUB_STEP_SUMMARY
exit 0
else
echo "### ❌ Some builds failed" >> $GITHUB_STEP_SUMMARY
echo "- Ubuntu: $ubuntu_result" >> $GITHUB_STEP_SUMMARY
echo "- Windows: $windows_result" >> $GITHUB_STEP_SUMMARY
exit 1
fi

- name: Parse failed matrix jobs
if: needs.build-ubuntu.result == 'failure' || needs.build-windows.result == 'failure'
run: |
echo "## Failed Matrix Combinations" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| OS | Node Version | MongoDB Version | Status |" >> $GITHUB_STEP_SUMMARY
echo "|----|--------------|-----------------|--------|" >> $GITHUB_STEP_SUMMARY

# Since we can't directly get individual matrix job statuses,
# we'll note that the build job failed
echo "| Multiple | Multiple | Multiple | ❌ Failed |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "⚠️ Check the [build job logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details on which specific matrix combinations failed." >> $GITHUB_STEP_SUMMARY
54 changes: 5 additions & 49 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: 'CodeQL'

on:
Expand All @@ -25,67 +14,34 @@ permissions:
jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
language: ['javascript-typescript']
# CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
# Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Harden Runner
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2
with:
egress-policy: audit

- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@42213152a85ae7569bdb6bec7bcd74cd691bfe41 # v3
uses: github/codeql-action/init@72c0b0efb7def5141326c5e13760acdda431379d # ratchet:github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@42213152a85ae7569bdb6bec7bcd74cd691bfe41 # v3

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
uses: github/codeql-action/autobuild@72c0b0efb7def5141326c5e13760acdda431379d # ratchet:github/codeql-action/autobuild@v4

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@42213152a85ae7569bdb6bec7bcd74cd691bfe41 # v3
uses: github/codeql-action/analyze@72c0b0efb7def5141326c5e13760acdda431379d # ratchet:github/codeql-action/analyze@v4
with:
category: '/language:${{matrix.language}}'
8 changes: 4 additions & 4 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2
with:
egress-policy: audit

- name: 'Checkout Repository'
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Dependency Review
uses: actions/dependency-review-action@45529485b5eb76184ced07362d2331fd9d26f03f # v4
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4
with:
comment-summary-in-pr: always
fail-on-severity: high
allow-licenses: MIT, MIT-0, Apache-2.0, BSD-3-Clause, BSD-3-Clause-Clear, ISC, BSD-2-Clause, Unlicense, CC0-1.0, 0BSD, X11, MPL-2.0, MPL-1.0, MPL-1.1, MPL-2.0, OFL-1.1, Zlib
allow-licenses: MIT, MIT-0, Apache-2.0, BSD-3-Clause, BSD-3-Clause-Clear, ISC, BSD-2-Clause, Unlicense, CC0-1.0, 0BSD, X11, MPL-2.0, MPL-1.0, MPL-1.1, MPL-2.0, OFL-1.1, Zlib, BlueOak-1.0.0, LicenseRef-scancode-dco-1.1, Ubuntu-font-1.0, Artistic-2.0
fail-on-scopes: development, runtime
allow-dependencies-licenses: 'pkg:npm/caniuse-lite'
45 changes: 45 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Build and Publish Docker Image

on:
push:
branches: [main]
release:
types: [published]

jobs:
docker-build-publish:
name: Build and Publish Docker Image
runs-on: ubuntu-latest

steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4

- name: Checkout Repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Log in to Docker Hub
if: github.repository_owner == 'finos'
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
with:
username: finos
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Set Docker Image Tag
id: tags
run: |
if [ "${{ github.event_name }}" = "release" ]; then
echo "tags=${{ github.repository }}:${{ github.ref_name }},${{ github.repository }}:latest" >> $GITHUB_OUTPUT
else
echo "tags=${{ github.repository }}:main" >> $GITHUB_OUTPUT
fi

- name: Build and Publish Docker Image
if: github.repository_owner == 'finos'
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
with:
context: .
file: Dockerfile
push: true
tags: ${{ steps.tags.outputs.tags }}
provenance: true
Loading
Loading