30 Commits

Author SHA1 Message Date
r1oga
56735ebbd7 refactor: define separate routers, update openapi spec (#40)
* refactor: define separate routers. Update openapi spec (#38)

* refactor: serve openapi.json on /api-docs

* refactor: Define separate routers

* Update openapi spec

* fix Docker build (#39)

- Type explicitly Router and Express app
- Fix module resolution (module-alias)
2023-03-03 09:18:05 +01:00
r1oga
8498a4a08c Update README.md 2023-03-02 18:24:18 +01:00
r1oga
7c3fca3e81 fix: copy /public folder to docker image
Otherwise favicon is missing
2023-02-28 23:38:25 +01:00
r1oga
d2b2d59e6c feat: check gh-contributors and dao-voters groups membership (#37)
* feat: check `gh-contributors` and `dao-voters` membership  (#36)

* feat:test: get orgs with repos and voters

* feat:test: split a time range in chunks

* refactor: get gh names by space ids

Rename field in gql query directly

* feat:test: get ids of the snapshot spaces an address voted for

Query by address instead of by space ids

* refactor: rename space keys when fetching them from snapshot rest api

* refactor getSpaces and getGhOrgs

* refactor: return object from getGhNamesBySpaceIds

* refactor: rename splitArray to split. Remove splitTimestamps fn

* remove gh, daos, snapshot & scripts folders

* add test.unit nps script

* feat:test: exclude orgs from an ignore list

* remove getGhOrgs method

* remove GroupService.ts

* refactor: accept ghName to be null

Because of prisma schema definition

* refactor `getOrgsWithRepos`

Make 1 call to get spaces gh names

* fix unit and integration tests

* update prisma schema (ghName optional)

* fix: fetch first 1000 spaces in getGhNamesBySpaceIdsQuery

* fix e2e and integration tests

* refactor:test: get whitelist short return `{ daos, repos }`

* feat:test: add GET `/whitelist/{daos,repos}` endpoints

* feat:test: can check wether a user belongs to voters group

* refactor whitelist service

* add `/whitelist/{daos,repos}` to app router

* format

* feat: add `/belongs-to-*-group` endpoints

* restructure endpoints

* update openapi spec

* Update README

* format

* fix: remove parameters from /whitelist/repos openapi spec
2023-02-28 23:20:53 +01:00
r1oga
166e5fe8a0 feat: Serve swagger doc ui on root endpoint (#34)
* feat: serve swagger ui on root endpoint (#33)

* feat: serve swagger ui on root endpoint

* remove home controller

* feat(swagger): Customize root page title and favicon
2023-02-01 22:31:45 +00:00
r1oga
86e332bc6d Create LICENSE 2023-01-31 23:38:16 +01:00
r1oga
3db62559c4 Update README.md 2023-01-31 23:05:29 +01:00
r1oga
4725f78853 fix: Update root endpoint html 2023-01-31 22:04:54 +00:00
r1oga
2b062ba78a Update README.md 2023-01-31 23:03:37 +01:00
r1oga
55e55ae111 feat: serve user in long/short format. Add root endpoint (#32)
* feat:test: return in long/short format (#30)

* feat: Describe API on root endpoint (#31)
2023-01-31 21:56:58 +00:00
r1oga
6409aa6ca8 fix: rename to fly-main.toml to fly-prod.toml 2023-01-31 09:28:09 +00:00
r1oga
1610d66b4e feat:refactor: deploy api (whitelist/user) as express server (#29)
* feat: accept post requests parameters (since, until ...) (#15)

* test committer group handler happy path

* test committers group handler params validation

* test voters group handler

* test posting with since/until string parameters

* update serverless functions

* undo renaming of test setup file

* update gh workflows to include push/pr to staging branch

* chore: format/lint (#16)

* update jest configs

* format/lint

* update test.ci script

* refactor: serve whitelisted orgs (#19)

* feat: accept post requests parameters (since, until ...) (#18)

* feat: accept post requests parameters (since, until ...) (#15)

* test committer group handler happy path

* test committers group handler params validation

* test voters group handler

* test posting with since/until string parameters

* update serverless functions

* undo renaming of test setup file

* update gh workflows to include push/pr to staging branch

* chore: format/lint (#16)

* update jest configs

* format/lint

* update test.ci script

* feat:test: define gql, gh, snapshot repositories

* refactor: Get contributed repo by user and repos by org

* feat: get repos of multiple orgs

* refactor SnapshotRepository

* chore: use barrels

* refactor: get committers by org

* test(whitelist-service): add org

* update graphql files

* test: whitelist service

* test whitelistService.refresh

* fix: decorate WhitelistService with typedi Service

* fix: catch error on fetching repos if org not found

* test prisma db connection

* test refresh whitelist handler

* add refresh serverless function

* refactor: select only some props

* update whitelist service test

* rename file

* stub User service and controller

* rename var, import

* fix compilation errors

* add refresh serverless function

* rename vars

* feat: deploy as express server (#20)

* feat: deploy as express server

* add fly.toml

* feat: Containerize app (#21)

* feat: Containerize app

* Add Dockerfile-deploy (for fly.io deployment)

* Update PORT

* Add deploy workflow

* feat:test: Add get all whitelisted orgs endpoint (#22)

* feat:test: Can return orgs in short (default) or long formats (#23)

* fix paths trigger for GH  deploy workflow

* feat:test: get groups by username (#27)

* define intersect util

* feat:test: define user service

* chore: format

* feat:test: add user controller/service

* refactor:test: whitelist router

* doc: Update README (#28)

* doc: Update README

* update path-ignore

* Update README

* chore: Update deploy workflows

* remove files

* rename workflows
2023-01-31 09:14:59 +00:00
r1oga
ea63eb12bb feat: accept post requests parameters (since, until ...) (#18)
* feat: accept post requests parameters (since, until ...) (#15)

* test committer group handler happy path

* test committers group handler params validation

* test voters group handler

* test posting with since/until string parameters

* update serverless functions

* undo renaming of test setup file

* update gh workflows to include push/pr to staging branch

* chore: format/lint (#16)

* update jest configs

* format/lint

* update test.ci script
2023-01-20 16:47:37 +01:00
r1oga
9f166eb9f7 test: add unit test for utils (#14)
* remove snapshot serverless functions

Do not consume unnecessary quota of 10 free serverless functions on nhost

* refactor

* test: add unit test for utils

* fix minusOneMonth
2023-01-19 14:37:23 +01:00
r1oga
823313b75d feat: get group of addresses who voted to daos in some timeframe (#13)
* add gql query to get list of voters

* rename functions

* refactor get spaces

* get voters group

* fix typo

Committer instead of commiter

* test

* define serverless function
2023-01-18 12:08:48 +01:00
r1oga
12d6573020 refactor: update baseurl for import, create subfolders (#12) 2023-01-17 23:06:32 +01:00
r1oga
c41d5f0c4a feat: define serverless functions (#10) 2023-01-16 17:18:50 +01:00
r1oga
0a69def979 fix: fetch spaces by chunk of 20 (#9)
* fix: fetch spaces by chunk of 20

Need to page over results

* add console logs
2023-01-16 15:37:19 +01:00
r1oga
264805370a feat: get group of gh users (#8)
* rename parameters

* get gh group

* Update README

* Update README
2023-01-16 14:10:20 +01:00
r1oga
4d96d9e749 get commits between 2 dates 2023-01-10 17:35:39 +01:00
r1oga
0cbb19bb05 update coveralls workflow 2023-01-10 17:35:39 +01:00
r1oga
fe4f60f46b update coverage config 2023-01-10 17:35:39 +01:00
r1oga
229d9bb9d7 clean up 2023-01-10 17:35:39 +01:00
r1oga
9599c42aee feat: get committers by org
No timerange yet
2023-01-10 17:35:39 +01:00
r1oga
f61a904ab3 feat: get GH org names corresponding snapshot spaces (#6)
* refactor: return list of spaces keys (ids) instead of spaces values

* feat: get GH org name corresponding snapshot spaces
2023-01-09 16:59:15 +01:00
r1oga
2cd4575112 feat: get list of spaces filtered by followers count from snapshot.org (#5)
* chore: update .eslintignore

* feat:test: get spaces by min of followers

* lint

* fix: do filter using GitHub prop

This prop is not available in response from explore api endpoint.
Need to use a graphql query

* Add script

* format
2023-01-09 16:03:28 +01:00
r1oga
b5e6856fb3 Add graphql schema (#4)
* add graphql files

* Update prettierignore
2023-01-09 13:35:35 +01:00
r1oga
b25041fe23 chore: add pm related GH actions (#3) 2023-01-09 13:32:53 +01:00
r1oga
b6ceb605de cleanup 2023-01-08 17:06:09 +01:00
r1oga
bb72ece850 Initial commit 2023-01-08 16:57:38 +01:00