Giter VIP home page Giter VIP logo

api's Introduction

This repo is archived. If you are looking for the latest, check out open-sauced/insights or open-sauced/hot.


Open Sauced

πŸ• Open Sauced πŸ•

The path to your next Open Source contribution

CodeQL Compliance Release Publish stories if changed Netlify Status Dependabot Badge GitHub code size in bytes GitHub commit activity GitHub issues GitHub Release Discord Twitter

Open Sauced provides structured onboarding for new contributors to open source. This structure provides a way to track your next contributions by leveraging a unique dashboard built on top of the GitHub GraphQL API.

open-sauced-screencap

πŸ“– Prerequisites

In order to run the project from a container we need node>=14, npm>=7 and docker>=20 installed on our development machines or use one of the listed cloud providers we support:

Gitpod

βœ… fully ready integrated development environment

β­• VS Code settings sync is not ideal

Open in Gitpod

Gitpod is mostly free but has extensive documentation for all its contributing features.

For Vite to work with Gitpod we need to use a custom Dockerfile that lives under .gitpod.Dockerfile.

Open Sauced comes with a pre-defined .gitpod.yml that should work out of the box in multiple contribution scenarios.

Replit

βœ… fully ready integrated development environment

β­• modified contribution workflows

Open in Replit

Replit is an old service that recently supported NixOS, enabling full customisation of the runner and project.

Open Sauced is configured with a shell environment supporting node@16 and npm@8. The build environment script lives in shell.nix and the repl config lives in .replit.

Codesandbox

βœ… can be used as editor replacement

βœ… supports deployment preview

β­• enforces custom package manager for stability

β­• low resources free tier limitations

Open in CodeSandbox

Stackblitz

βœ… can be used as editor replacement

βœ… supports deployment preview

β­• enforces custom package manager for stability

β­• limited documentation on container limitations

Open in Stackblitz

Glitch

βœ… can be used as editor replacement

βœ… supports deployment preview

β­• enforces custom package manager for stability

β­• does not support stacked hot module reload

β­• severely low resources free tier limitations

Remix on Glitch

πŸ–₯️ Local development

To install the application:

npm ci

To start a local copy of the app on port 3000:

npm start

πŸ§ͺ Test

For running the test suite, use the following command. Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to install watchman.

npm test

You can request a coverage report by running the following command:

npm run test:coverage

πŸ“¦ Docker builds

A development preview can also be run from docker:

docker build -t open-sauced-dev .
docker run -p 8080:80 open-sauced-dev

Alternatively you can pull the production container and skip all builds:

docker run -dit -p 8080:80 ghcr.io/open-sauced/open-sauced

🎨 Code linting

To check the code and styles quality, use the following command:

npm run lint

This will also display during development, but not break on errors.

To fix the linting errors, use the following command:

npm run format

πŸš€ Production deployment

A production deployment is a complete build of the project, including the build of the static assets.

npm run build

You can analyze the build by running the following command:

npm run build:analyze

🎭 Offline asset optimization

We also have a script for updating .svg files used in the project, you only need to run this if you add new assets:

npm run build:svgo

And one for .png and .jpg files:

npm run build:squoosh

🚧 Development debugging

Thanks to antfu/vite-plugin-inspect we can always inspect the bundles in development by navigating to localhost:3000/__inspect/ in your browser.

πŸ“™ Storybook

Storybook is being leveraged to mock out visual React components. The latest version of the design system can be found at this URL.

npm run storybook

storybook example screenshot

πŸ”‘ Authentication

Authentication is handled through OneGraph's AuthGuardian service.

πŸ’Ύ Database

This project uses GitHub as a database. When you login, you will be presented with a button to create a goals repository. That repository template lives at open-sauced/goals-template.

πŸ’¨ Service Worker

This project uses the sw-precache to kickstart an offline cache. The offline cache only registers in production. If service needs to be manually removed make an unregister call from the registerServiceWorker.js import.

πŸŒ™ Dark Mode

This project supports "dark mode" styling, and by default it will follow the color preference on your device. It also allows for overriding this using buttons at the top right of the screen, which will persist the preference to local storage on your device. More info about color preference web API's can be found here: MDN Web Docs

πŸ“ Markdown Support

This project leverages Remirror for a delightful experience in documenting your Open Source goals. The editor supports markdown features including heading levels, bulleted lists, text formatting, code snippets, and emojis!

🀝 Contributing

We encourage you to contribute to Open Sauced! Please check out the Contributing guide for guidelines about how to proceed.

We have a commit utility called @open-sauced/conventional-commit that helps you write your commits in a way that is easy to understand and process by others.

It is generally integrated as an npm script but you can run it with npx as well:

npm run push

For any other npm based project or dotnpmrc defaulting to --yes:

npx -y @open-sauced/conventional-commit

πŸ• Community

Got Questions? Join the conversation in our Discord.
Find Open Sauced videos and release overviews on our YouTube Channel.

🎦 Repository Visualization

Visualization of this repository

βš–οΈ LICENSE

MIT Β© Open Sauced

api's People

Contributors

0-vortex avatar a0m0rajab avatar alexhladin avatar anush008 avatar bdougie avatar brandonroberts avatar cecobask avatar deadreyo avatar deepakrudrapaul avatar diivi avatar doaortu avatar hack-light avatar jobayer12 avatar jpmcb avatar martiinwalsh avatar nickytonline avatar ogdev-01 avatar soundaryakoutharapu avatar takanome-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

api's Issues

Feature: extend logger and implement open telemetry

Type of feature

πŸ• Feature

Current behavior

Our logs are kept on the digital ocean runner history, but our application doesn't save to a file those logs nor does it pass them along to a 3rd party.

While our current pino implementation is very close to hit the milestone, the additional telemetry instrumentation makes this ticket worth a couple of hours extra read.

Suggested solution

While this is a critical issue for our production builds, I will most likely tackle this in the next couple of days, however, for reference, I will leave here a bunch of links that are worth investigating around this particular issue.

Articles I found noteworthy:

Code I discovered in the process:

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: better OpenAPI description and documentation links

Type of feature

πŸ“ Documentation

Current behavior

We set the version, description and title automatically from package.json, producing a very brute description: https://beta.api.opensauced.pizza/docs

Suggested solution

Extend our OAS3 configuration with other properties from @nestjs/swagger/dist/document-builder.d.ts

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: deploy to github pages only on main branch

Describe the bug

Need to add a conditional to the static release workflow to only trigger on main branch.

Steps to reproduce

Make a deploy to beta or alpha, github pages will build and deploy.

Affected services

api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

Production, Development, Testing

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add repo vote controller and service

Type of feature

πŸ• Feature

Current behavior

Suggested solution

Extend repos/:owner/:repo and repos/:id each with a vote function protected by supabase auth

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Bring back the recency score

Type of feature

πŸ• Feature

Current behavior

Screen Shot 2022-07-13 at 2 19 33 PM

Suggested solution

Calculate how recent the project was starred amongst Open Sauced users.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Set up the project automated tests

Type of feature

βœ… Test

Current behavior

Currently tests are not setup correctly, and the npm run test is set to a placeholder command.

The README also mentions tests as if it is setup and working, but it isn't.

Suggested solution

Correctly setting up tests with jest, configuring it if needed and installing the required dependencies if any. As well as adding a very basic initial test to prove testing as a whole is working correctly.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: implement typeorm soft-delete strategy

Type of feature

πŸ• Feature

Current behavior

Deleting stuff in the database is permanent, we have no record of how many times a user upvotes and downvotes a repository for example.

Suggested solution

Implements soft-deletes and adjust all API routes to handle existing deleted tokens

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: increase fastify rate limit

Describe the bug

loading insights for the first time can rate limit you for 250 per minute

Steps to reproduce

  1. go to a frontend
  2. refresh the page after starting to load items
  3. get rate limited

Affected services

opensauced.pizza, hot.opensauced.pizza, api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

Production, Development

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: submissions table

Type of feature

πŸ• Feature

Current behavior

As mentioned in open-sauced/hot repo, a submissions table should be added for the API.

See commentary in:
open-sauced/hot#198

Current behavior: no submissions table.

Suggested solution

Add submissions table and POST endpoints to accept submissions and approve submissions.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add repo star controller and service

Type of feature

πŸ• Feature

Current behavior

Suggested solution

Extend repos/:owner/:repo and repos/:id each with a star function protected by supabase auth

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

The automated release is failing 🚨

🚨 The automated release from the beta branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the beta branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Error tag docker push.

Error tag docker push. Check credentials in registries.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Feature: deploy docs to github pages

Type of feature

πŸ“ Documentation

Current behavior

we have swagger and compodoc without it being deployed anywhere

Suggested solution

deploy the swagger doc to github pages similar to https://docs.opensauced.pizza

Additional context

not a GFI, me or @bdougie should do it

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add backend caching

Type of feature

πŸ• Feature

Current behavior

We have no caching

Suggested solution

Store things (requests) in memory and figure out a way to cache stuff.

Ultra important :pizz

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: ValidationPipe is not enforced on single Param

Describe the bug

@Param("id") id: number will not correctly transform a value like 102d and change it to NaN instead of a Number

Needs @Param("id", ParseIntPipe) id: number to correctly validate

Steps to reproduce

Go to any API with ID or single parameters, you will likely be able to exploit the controller layer, tho TypeORM still guarded against injection.

Affected services

api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Start sourcing topics for the API repo data

Type of feature

πŸ• Feature

Current behavior

We currently do not have a way to filter based on topics in the hot repo.

Suggested solution

In addition to grabbing contribution data, we should grab the repo topic data to better match what is happening in insights.opensauced.pizza.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: /v1/health/service endpoint is broken

Describe the bug

The endpoint https://api.opensauced.pizza/v1/health/service is broken. It returns an error page.

image

On local development, it gives a 500 internal error, and in console, this error:

[Nest] 28396  - 10/12/2022, 8:20:00 PM   ERROR [ExceptionsHandler] The following path is invalid (should be X:\...): /
InvalidPathError: The following path is invalid (should be X:\...): /
    at powershellCmd (I:\CODING\MLH\api.opensauced.pizza\node_modules\check-disk-space\dist\check-disk-space.cjs:144:24)
    at new Promise (<anonymous>)
    at checkWin32 (I:\CODING\MLH\api.opensauced.pizza\node_modules\check-disk-space\dist\check-disk-space.cjs:143:20)
    at DiskHealthIndicator.checkDiskSpace (I:\CODING\MLH\api.opensauced.pizza\node_modules\check-disk-space\dist\check-disk-space.cjs:194:16)
    at DiskHealthIndicator.<anonymous> (I:\CODING\MLH\api.opensauced.pizza\node_modules\@nestjs\terminus\dist\health-indicator\disk\disk.health.js:82:47)
    at Generator.next (<anonymous>)
    at I:\CODING\MLH\api.opensauced.pizza\node_modules\@nestjs\terminus\dist\health-indicator\disk\disk.health.js:20:71
    at new Promise (<anonymous>)
    at __awaiter (I:\CODING\MLH\api.opensauced.pizza\node_modules\@nestjs\terminus\dist\health-indicator\disk\disk.health.js:16:12)       
    at DiskHealthIndicator.checkStorage (I:\CODING\MLH\api.opensauced.pizza\node_modules\@nestjs\terminus\dist\health-indicator\disk\disk.health.js:81:16)

Steps to reproduce

Go to https://api.opensauced.pizza/v1/health/service

Affected services

api.opensauced.pizza

Platforms

Desktop

Browsers

Firefox

Environment

Production, Development

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

bug: searching repos by owner and repo name should be case insensitive

Describe the bug

Discovered by a user in our discussions

open-sauced/feedback#2 (reply in thread)

Hiya Brian @bdougie It still does not show up and takes me back to this discussion page to ask for it to be added.

Do you mind checking please after the holidays.

Thanks, Warren πŸ˜„

We should make this not case sensitive.

Steps to reproduce

IMG_0208

  1. navigate to insights hub
  2. create insights page
  3. add umbraco/umbraco-cms - it doesn't work
  4. Now add umbraco/Umbraco-CMS to another new page - it works

Affected services

insights.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

the filtering on the repo is not sensitive. IMG_0207

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Track repository topics and languages

Type of feature

πŸ• Feature

Current behavior

The new insights product will eventually filter by knowledge of topics and languages. We should also store that data for filtering purposes.

Suggested solution

Add two columns for the repo table the array for languages and topics

Screen Shot 2022-07-31 at 8 27 37 PM

Screen Shot 2022-07-31 at 8 27 55 PM

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: Incorrect example for returned data from `/v1/highlights/{id}/reactions` in swagger

Describe the bug

The swagger displays this as an example of the data returned from a request:
image

But the actual data format returned when testing was this:
image

Steps to reproduce

https://api.opensauced.pizza/#/Highlights%20service/getAllHighlightReactions

Affected services

api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add repo submit controller and service

Type of feature

πŸ• Feature

Current behavior

Suggested solution

Extend repos/:owner/:repo and repos/:id each with a submit function protected by supabase auth

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: correctly backfill login flows during every auth request

Describe the bug

we have some users that logged in into insights prior to December and have "is_open_sauced_member"=false, even tho they are active users

Steps to reproduce

can't figure out an example but my account 0-vortex was impacted, setting it manually to false in the database doesn't fix it so update your user and use it for testing

Affected services

insights.opensauced.pizza, api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add repo stargaze controller and service

Type of feature

πŸ• Feature

Current behavior

Suggested solution

Extend repos/:owner/:repo and repos/:id each with a stargaze function protected by supabase auth

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: implement Supabase JWT guards into OpenAPI controllers

Type of feature

πŸ• Feature

Current behavior

We have Supabase auth strategy but it is not implemented.

Suggested solution

Implement existing supabase auth strategy into repos self functions, ensure correct backend to client translation happens using existing open-sauced/hot login (send supabase-js JWT to backend should just work)

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: increase `PageOptionsDto` limit to a reasonable number

Describe the bug

we are unable to get more than 50 items per page on any endpoint

Steps to reproduce

curl -X 'GET' \
  'https://api.opensauced.pizza/v1/repos/list?page=1&limit=10' \
  -H 'accept: application/json'

Affected services

api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Need an automated way to highlight hot or trending repos.

Type of feature

πŸ• Feature

Current behavior

GitHub is deprecating the trending tab. We shold identify trending repos from the API. https://twitter.com/amasad/status/1565585382804033536

Screen Shot 2022-10-04 at 3 31 59 PM

Screen Shot 2022-10-04 at 3 24 43 PM

Suggested solution

Today we can manually select repos and make them trending, but it would be nicer to run a script to discover the following

  • Repo that got the most stars in one day/week
  • Repos that receive the most contributions day/week
  • Repos with the most first time contributors day/week

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Better error or response handling when repo does not exist for voting

Type of feature

πŸ• Feature

Current behavior

Today a repo is submitted and does not exist in the API it presents an error (either 500 or 400 status code - @janie-lee-developer will need to share more context) message. The expectation is that the repo is added to a queue for indexing or instantly indexed.

Suggested solution

Provide a consistent response (200) code and message when a submitted repo and waiting to be indexed.

If the data is unavailable, it should show "sync in progress" or "updating" or similar.

Additional context

open-sauced/hot#394

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Mention the .env file in Local Development documentation

Type of feature

πŸ“ Documentation

Current behavior

Right now there's no mention of having to create a .env file when installing and running the repo. This leads to the server not being able to run, and can get confusing as to why it is not running for new contributors.

Also in the .env file, for windows users it should be mentioned that the API_HOST key should be equal to 127.0.0.1, as opposed to 0.0.0.0

Suggested solution

Mentioning it is required and adding that windows info to the readme file under the Local Development section.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: implement cryptographic functions

Type of feature

πŸ• Feature

Current behavior

Storing sensitive user data like PATs can be done securely by encrypting this data in our storage tables with a quantum resistant crypto algorithm and storing the key outside of this repository or user code.

In combination with the supabase JWT secret leaves no room for exploitation outside of a full breach! :rock

Suggested solution

Find quantum resistant crypto algos, ideally a javascript implementation available via npm and create and environment variable to store the secret.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: OpenAI endpoint for generating pr descriptions

Type of feature

πŸ• Feature

Current behavior

Need to obscure an OpenAI token for this open-sauced/ai#79

src/utils/aiprdescription/descriptionconfig.ts

Suggested solution

POST - /v1/pull-request/description/generate

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Stargaze service should also star on GitHub via the API

Type of feature

πŸ• Feature

Current behavior

When a user leverages the Stagaze controller, it should track in the DB, but also add a star on GitHub. We should connect that interaction to the GitHub API as well.

Suggested solution

  1. As a user I want to track the repos I star
  2. As a user I would like to star a repo on github that I star on opensauced.
  3. As a user I should be able to star hot.opensauced.pizza

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Status Page

With the new footer, we should put together a status page for this API and potentially for the gs-api. This footer will get added to all sites.

Screen Shot 2022-09-15 at 6 40 36 PM

Feature: implement role based application access levels

Type of feature

πŸ• Feature

Current behavior

everyone can do everything public in the API while future logged users will be able to do self-functions

Suggested solution

Implement horizontal role tables and access tables with nestjs guards in place. Leave the implementation flexible for future role structure

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: document how to get your bearer token

Type of feature

πŸ“ Documentation

Current behavior

To make POST requests in the swagger playground, you need a JWT.

Suggested solution

I know there is a path to get it from your network tab in the hot UI, but we would want to document that or make it easier to find

Screen Shot 2022-10-04 at 2 59 48 PM

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Error tag docker image.

Error tag docker image. Check credentials in registries.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Feature: Store GitHub Avatars in supabase

Type of feature

πŸ• Feature

Current behavior

We are currently fetching GitHub Avatars via the GitHub API URL or similar (on-demand).

open-sauced/app#142 (comment)

Suggested solution

We should save avatar images 100px or less in our own storage so we can to load them via the API or at the very least progressively load them. Similar to next/image.

This will be useful for the insights platform and hot.

open-sauced/app#142 (comment)

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add nodejs tracing to 3rd party service

Type of feature

πŸ• Feature

Current behavior

After we have logging and open telemetry we could enable real time tracing of everything we are doing.

This can be done in many ways, both from inside the nestjs application to services like datadog as well as outside the application via statsd and similar system level practices.

Suggested solution

Figure out what the best way to do this is, resources and code involved.

Heavy pull! πŸ’―

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: Can't vote for a repo even after removing my previous vote

Describe the bug

I get a 409 error when I vote for a repo I have already voted for earlier.
This is normal.
However, I also get a 409 error when I remove my vote for the repo and vote for it again.

Steps to reproduce

  1. Go to https://api.opensauced.pizza/
  2. Enter auth token
  3. Vote for a repo
  4. Remove that vote
  5. Vote for that repo again
  6. error 409

Affected services

api.opensauced.pizza

Platforms

Desktop

Browsers

Chrome

Environment

Production

Additional context

Was adding upvote/remove vote functionality to my opensauced-github extension when I faced this issue.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Consume gharchive

Type of feature

πŸ• Feature

Current behavior

Today we power the API with a suite of GitHub Actions. As effort to expand the offering for the API, I suggest we consume the GitHub Archive.

The goal is identify trending repos on GitHub to answer the following questions

  • Which projects are growing contributors?
  • Which projects received a spike in stars?

Suggested solution

Create a service that populates events into a DB in a structured way that matches our existing API structure for insights.opensauced.pizza.

This should compliment the existing API.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: getting a cors issue on beta.api.opensauced.pizza

Describe the bug

Getting this error when testing open-sauced/app#1120 on localhost
I'm not sure if it's actually a cors error or if I'm missing something.

cors-issue

Steps to reproduce

  1. Start the insights repo locally
  2. create a highlight with no description
  3. see an error with type cors instead of highlight must be longer than...

Affected services

insights.opensauced.pizza

Platforms

Desktop

Browsers

Firefox

Environment

Development

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: implement mailing capability

Type of feature

πŸ• Feature

Current behavior

We don't have any transactional email set up.

Suggested solution

Set up services enabling us to send emails, custom provider or twilio mail + sms backport from our other repositories

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: eslint and fix configuration

Type of feature

🎨 Style

Current behavior

we don't have style linting and fixing

Suggested solution

implement eslint with a bunch of typescript and nestjs defaults

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Add endpoint to check if user already vote the repo

Type of feature

πŸ• Feature

Current behavior

After scanning the Swagger UI docs, I noticed there's no quick way to check if user already voted to the specific repository

Right now, I believe, if I want to check any repository already voted by user, I need to fetch the /v1/repos/findAllUserVoted, loop all data and check if there's repo that I want to check, then I finally got the result. Not to mention there's pagination, etc.

Suggested solution

It would be nice if there's standalone endpoint to do this,
something like /v1/repos/uservoted/{owner}/{repo} or /v1/repos/uservoted/{repoid}
and it will return true or false, with the repo data (voteCount, etc).

if I may, I could help to build this feature.

Thanks in advance.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Bug: `/auth/profile` should not delete user profile's data if they were not provided

Describe the bug

For the endpoint of /auth/profile, not providing data members in the request body would delete that value from the backend/database.
Ex: If I put an object without bio in the request (like just updating name, email, and timezone), it would delete the bio of the user.
This may cause a problem in onboarding when I only need to update the timezone of the user.

Steps to reproduce

  1. https://api.opensauced.pizza/#/
  2. send a request to /auth/profile with name, email and another item.
  3. all other missing items will be deleted in the user data.

Affected services

api.opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Consume live GitSense data

Type of feature

πŸ• Feature

Current behavior

We are a week or so away from getting live data from GitSense. We will need to start planning how to consume this alongside our Supabase DB.

Suggested solution

What I know:

  1. This DB is powered by Citus (problem now important)
  2. We will received postgres URL,
  3. We will need to store username and password in the ENV.

For now, I don't anticipate a lot of contributions to this repo, but we would need to consider that as well. Still on the fence is onboardbase is the solution there.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: ensure backup database availability

Type of feature

πŸ• Feature

Current behavior

we are backing the database up, sort of :sweat

Suggested solution

Apply proper migration and backup practices

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: make container deployment possible

Type of feature

πŸ” CI

Current behavior

you can clone and run this locally

Suggested solution

we need some lifecycle monitoring, dockerfile baking and github deployment practices as part of post semantic release versioning.

Additional context

  • everything githubt workflows is fine tuned to other open sauced repositories
  • additional post-release steps are required
  • not a good first issue but can offload to people with Nest and Docker experience

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: add global abstract filters

Type of feature

πŸ• Feature

Current behavior

We can only filter routes by some custom parameters we manually set.

Suggested solution

Create a nestjs-paginate solution that extends the PaginatedResponse decorators with a custom filter that reflects the given return Model.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.