Skip to content
This repository has been archived by the owner on Mar 12, 2024. It is now read-only.

Commit

Permalink
Dev (#220)
Browse files Browse the repository at this point in the history
* Feature/add all services to gpt prompt (#213)

* Fix logging

* Add notion to settings

* Add notion to app

* fix newline

* Remove extra character

* Add page image support

* fix title

* fix image display

* fix no token error

* Filter out private messages

* Allow getting less than standard results

* Create getHoverData.ts

* fix token passing

* Fix typo

* Now uses commitTitle

* Add new users to Sendgrid contact list

* Scrub action for app

* Fixes to slack matches

* Fix/remove action (#178)

* Delete watermelon.yml

* Change dropdown link

* Change login link

* Change dashboard link

* small fixes

* Move text writers to helpers

* Fix comment editing

* Export helpers

* Add necessary imports

* Change logging

* Add non-registered user response

* Earlier counting of action uses

* reduce logging

* Add counting to comment

* Add error checking

* Add check for open repos

* Add error writing

* Extract count markdown

* Fix/typings improvements (#183)

* Add typings

* Fix possible nulls

* Add LoginGridProps type

* Fix possible null

* remove breaklines

* Add export

* Add import

* Update README.md, add title (#180)

* Update README.md, add title

* Update README.md

* Update README.md

* Update README.md (#181)

* Chore/codebase typings and nulls (#185)

* Allow max to be 5

* check nulls

* add typings

* fix possible null

* Add typings

* Add linear link for oauth

* Feature/linear (#186)

* Allow max to be 5

* Create linear.tsx

* Feature/linear (#187)

* Allow max to be 5

* Create linear.tsx

* Update linear.tsx

* Add logging

* improve logging

* Fix linear link

* Change encoding of request

* Fix body of request

* Fix userquery

* Save user, pass team name

* remove unused code

* logging

* try text

* Create LinearLoginLink.tsx

* Try new body

* Update linear.tsx

* Fix logo

* Create linear.svg

* add content type

* Add linear

* try fix

* Fix data matching

* Fix team

* Removed unused link

* Fix email

* Feature/team and navbar  (#182)

* add server-only

* add client-only

* Move to RSC

* remove logging

* fix typings

* fix typings

* add LoginGridProps

* Fix possibly null

* Add types

* Check nulls

* fix possible nulls

* ignore errors in lightly used api

* Set conditionally

* Check null

* check null

* fix typings

* fix null errors

* fix null

* add typings

* fix props passing

* Add typing

* Add typing

* fix typings

* Fix typing errors

* use nonnull assertion

* Add styles

* Move to app folder

* Adhere to app api route

* Make it non default

* upgrade next-auth

* restore session provider

* Fixes in adapter

* move auth to pages to test use

* Fix login route

* fix import

* Pass authprovider

* Added sidebar test

* Add sidebar

* Fix navbar, extract navbar

* Fix layout

* Hide elements if no session

* Update Navbar.tsx

* Fix layout

* Make app dark

* Extract form

* Extract navbar

* Move to app

* Move layout out

* Remove logging

* REmove logging

* Move logingrid to RSC

* Remove logingrid

* Add layout

* Remove logging

* Remove logging

* Create getTeammates.ts

* Create Team page

* Fix heading

* Delete github.tsx

* Move to App router

* Update README.md, add title (#180)

* Update README.md, add title

* Update README.md

* Update README.md

* Update README.md (#181)

* Move to RSC

* Fix Try app ui

* Remove data logging

* Make card details a page

* Move layout to master layout

* Fix type

* Fix layout order

* Remove billing link

* log response

* Move back to pages

* Add search params to billing page

* Create loading.tsx

* Get settings on load

* Adde repo owner and number to charge

* Pass number from param

* Force prompt

* fix params

* Add payment success page

* Add billing link to navbar

* Remove text that explains repo and seats in Card Elements

* Add texts that explains purchase amount

* Add linear to form (#190)

* Add linear to form

* Add Linear to query

* Create getLinear.ts

* Add linear fetching

* Change query to add limit

* Add logging

* Fix search terms

* Improve logging

* Update linear.ts

* Add linear to app (#192)

* Create linear.ts

* add no token handling

* Check nulls

* Fix search terms

* export module

* Naming fixes

* manage empty results

* Fix text

* Fix newline

* Code fixes

* Fix undefined team count

* Add teammates  (#193)

* Add button

* Code cleanup

* Create page.tsx

* Execute request on landing

* fix empty teammates

* fix null teammates

* add logging

* better logging

* Fix params

* Rmove logging

* Get team and copy to clipboard

* paralelize requests, shorten code

* send correct object

* Add interaction

* Add plaintext to copy

* Fix url

* Create loading.tsx

* Check for data before render

* Add catch to data fetch

* Fix return

* Update layout.tsx

* Update loading.tsx

* Update loading.tsx

* Update loading.tsx

* Move app link up

* fix button text

* Glow up

* Create loading.tsx

* Change email to info

* Create sendTeammateInvite.ts

* Add emailer form

* Fix template id

* Fix sending handler

* Move to API call

* Update sendInviteForm.tsx

* Update sendTeammateInvite.ts

* Cleanup

* Create loading.tsx

* Remove params

* Feature/save gh response (#194)

* Add saving query

* fix randomwords

* Improve logging

* stringify responses

* Check nulls

* Fix count number in log saving

* Correct wm user

* Extract to function (#196)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* Reorg imports (#197)

* Reorg imports

* Update github.ts

* Update github.ts

* Feature/extract gh action loggin (#198)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* fix id for team

* Fix saved string

* Feature/extract gh action loggin (#200)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* fix id for team

* Fix saved string

* Add replacing of apostrophe to fix query

* add \n to AI summary error (#199)

* add \n to AI summary error

* Update github.ts

* Feature/extract gh action logging (#202)

* Feature/page titles (#203)

* Delete sidebar.tsx (#201)

* Feature/posthog analytics (#204)

* Add posthogjs

* Create providers.tsx

* Add posthog

* Add posthognode

* Create posthogTracker.ts

* Add tracker to gh action

* make posthog early

* fix list filtering

* Rename tracker

* Add tracker

* Add tracker

* Streamline data fetching

* Add tracker

* Feature/confluence login (#206)

* Create ConfluenceLoginLink.tsx

* Add confluence

* Create atlassian page

* Remove primer

* Add primer

* change link

* Fix link

* fix link, text

* Emergency removal of posthog

* REmove all posthog instances

* Correct redirect uri

* better logging

* Update atlassian.tsx

* conditionally add pic

* add logging

* Add discrimination to jira and confluence

* Save confluence

* fix link

* Fix img

* debug logging

* Fix query

* Debug logging

* change grant typ

* Go back a grant type

* change logging

* Fix url

* Some more data wrangling

* fix saving

* Fix image

* Reorg dashboard

* Add coming soon ides

* Style navbar better

* Make sidebar sticky, add logout button

* Add workspace query

* Ignore name

* Remove unused code

* ignore calling

* try other import to release

* Move email to client

* Change logging

* fix obj accessing

* Add workspace, request emails

* Add email, optimize requests

* fix query

* Get refresh token on login

* Add confluence

* Improve logging

* reduce logging

* Better logging

* Create confluence.ts

* Add confluence

* Fix value

* Create confluence.ts

* Add logging

* logging

* Check if null

* Fix nulls

* Change how tokens are updated

* Rename

* Fixes to query executing

* Rename action

* Fixes and error handling

* Fix missing param

* Add offline access scope

* Several fixes to tokens

* Logging improvements

* Delete test Api

* Reduce throwing

* Make all unlogged services lose title

* Create watermelon.ts

* Use standard type

* use standard types

* Use standard types

* Create general case helper

* Make code more readable

* Print full payload in this repo

* Stringify full response

* Allow number to be a string, like a slack channel

* Add possible body

* Remove data dumping

* Standardize helpers

* Remove unused helpers

* Add possible image element

* Remove unused code

* use standard response

* remove logging, fix text

* Fix token errors in confluence

* Better responses on success and failure

* Check nulls

* Add max results

* Add limit using amount

* create StandardAPIInput

* Fix type

* Create OptionDropdown component

* Change to max 5

* Fix code

* Make it component based, add confluence

* Change pricing calculation and text to

* Remove component unused

* Fix loading page

* Update README.md (#207)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Extract types

* Use standard data

* Add all services to GPT, upgrade to 3.5 turbo

* Feature/confluence settings (#211)

* Make all unlogged services lose title

* Create watermelon.ts

* Use standard type

* use standard types

* Use standard types

* Create general case helper

* Make code more readable

* Allow number to be a string, like a slack channel

* Add possible body

* Standardize helpers

* Remove unused helpers

* Add possible image element

* Remove unused code

* use standard response

* remove logging, fix text

* Fix token errors in confluence

* Better responses on success and failure

* Check nulls

* Add max results

* Add limit using amount

* create StandardAPIInput

* Fix type

* Create OptionDropdown component

* Change to max 5

* Fix code

* Make it component based, add confluence

* Remove component unused

* Fix loading page

* Feature/standard api responses (#209)

* Make all unlogged services lose title

* Create watermelon.ts

* Use standard type

* use standard types

* Use standard types

* Create general case helper

* Make code more readable

* Allow number to be a string, like a slack channel

* Add possible body

* Standardize helpers

* Remove unused helpers

* Add possible image element

* Remove unused code

* use standard response

* remove logging, fix text

* Fix token errors in confluence

* Better responses on success and failure

* Check nulls

* Add max results

* Add limit using amount

* create StandardAPIInput

* Fix type

* Create OptionDropdown component

* Change to max 5

* Fix code

* Removed unused element

* Reduce code size

* Add confluence

* Reduce code

* Further reduce code

* Remove unneeded brackets

* Reduce code

* Remove unused code

* Fix call

* Remove BETA tag

* Improve prompt, return content

* Change how no responses look

* make code more secure

* Reduce length

* type fixes

* Fix type

* Delete conflicting file

---------

Co-authored-by: baristaGeek <estebanvargas94@gmail.com>

* Feature/login to service in app router (#218)

* send correct props

* Add notion back

* Add notion querying

* Add logging of result

* Fix getting of issue comments

* correctly pass props to notion (#179)

* correctly pass props to notion

* Update README.md

* fix undefined id error

* Fix logging

* Add better error logging

* Fix error due to no notion version

* Fix result returning

* add logging

* Fix logging

* Add notion to settings

* Add notion to app

* fix newline

* Remove extra character

* Add page image support

* fix title

* fix image display

* fix no token error

* Filter out private messages

* Allow getting less than standard results

* Create getHoverData.ts

* fix token passing

* Fix typo

* Now uses commitTitle

* Add new users to Sendgrid contact list

* Scrub action for app

* Fixes to slack matches

* Fix/remove action (#178)

* Delete watermelon.yml

* Change dropdown link

* Change login link

* Change dashboard link

* small fixes

* Move text writers to helpers

* Fix comment editing

* Export helpers

* Add necessary imports

* Change logging

* Add non-registered user response

* Earlier counting of action uses

* reduce logging

* Add counting to comment

* Add error checking

* Add check for open repos

* Add error writing

* Extract count markdown

* Fix/typings improvements (#183)

* Add typings

* Fix possible nulls

* Add LoginGridProps type

* Fix possible null

* remove breaklines

* Add export

* Add import

* Update README.md, add title (#180)

* Update README.md, add title

* Update README.md

* Update README.md

* Update README.md (#181)

* Chore/codebase typings and nulls (#185)

* Allow max to be 5

* check nulls

* add typings

* fix possible null

* Add typings

* Add linear link for oauth

* Feature/linear (#186)

* Allow max to be 5

* Create linear.tsx

* Feature/linear (#187)

* Allow max to be 5

* Create linear.tsx

* Update linear.tsx

* Add logging

* improve logging

* Fix linear link

* Change encoding of request

* Fix body of request

* Fix userquery

* Save user, pass team name

* remove unused code

* logging

* try text

* Create LinearLoginLink.tsx

* Try new body

* Update linear.tsx

* Fix logo

* Create linear.svg

* add content type

* Add linear

* try fix

* Fix data matching

* Fix team

* Removed unused link

* Fix email

* Feature/team and navbar  (#182)

* add server-only

* add client-only

* Move to RSC

* remove logging

* fix typings

* fix typings

* add LoginGridProps

* Fix possibly null

* Add types

* Check nulls

* fix possible nulls

* ignore errors in lightly used api

* Set conditionally

* Check null

* check null

* fix typings

* fix null errors

* fix null

* add typings

* fix props passing

* Add typing

* Add typing

* fix typings

* Fix typing errors

* use nonnull assertion

* Add styles

* Move to app folder

* Adhere to app api route

* Make it non default

* upgrade next-auth

* restore session provider

* Fixes in adapter

* move auth to pages to test use

* Fix login route

* fix import

* Pass authprovider

* Added sidebar test

* Add sidebar

* Fix navbar, extract navbar

* Fix layout

* Hide elements if no session

* Update Navbar.tsx

* Fix layout

* Make app dark

* Extract form

* Extract navbar

* Move to app

* Move layout out

* Remove logging

* REmove logging

* Move logingrid to RSC

* Remove logingrid

* Add layout

* Remove logging

* Remove logging

* Create getTeammates.ts

* Create Team page

* Fix heading

* Delete github.tsx

* Move to App router

* Update README.md, add title (#180)

* Update README.md, add title

* Update README.md

* Update README.md

* Update README.md (#181)

* Move to RSC

* Fix Try app ui

* Remove data logging

* Make card details a page

* Move layout to master layout

* Fix type

* Fix layout order

* Remove billing link

* log response

* Move back to pages

* Add search params to billing page

* Create loading.tsx

* Get settings on load

* Adde repo owner and number to charge

* Pass number from param

* Force prompt

* fix params

* Add payment success page

* Add billing link to navbar

* Remove text that explains repo and seats in Card Elements

* Add texts that explains purchase amount

* Add linear to form (#190)

* Add linear to form

* Add Linear to query

* Create getLinear.ts

* Add linear fetching

* Change query to add limit

* Add logging

* Fix search terms

* Improve logging

* Update linear.ts

* Add linear to app (#192)

* Create linear.ts

* add no token handling

* Check nulls

* Fix search terms

* export module

* Naming fixes

* manage empty results

* Fix text

* Fix newline

* Code fixes

* Fix undefined team count

* Add teammates  (#193)

* Add button

* Code cleanup

* Create page.tsx

* Execute request on landing

* fix empty teammates

* fix null teammates

* add logging

* better logging

* Fix params

* Rmove logging

* Get team and copy to clipboard

* paralelize requests, shorten code

* send correct object

* Add interaction

* Add plaintext to copy

* Fix url

* Create loading.tsx

* Check for data before render

* Add catch to data fetch

* Fix return

* Update layout.tsx

* Update loading.tsx

* Update loading.tsx

* Update loading.tsx

* Move app link up

* fix button text

* Glow up

* Create loading.tsx

* Change email to info

* Create sendTeammateInvite.ts

* Add emailer form

* Fix template id

* Fix sending handler

* Move to API call

* Update sendInviteForm.tsx

* Update sendTeammateInvite.ts

* Cleanup

* Create loading.tsx

* Remove params

* Feature/save gh response (#194)

* Add saving query

* fix randomwords

* Improve logging

* stringify responses

* Check nulls

* Fix count number in log saving

* Correct wm user

* Extract to function (#196)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* Reorg imports (#197)

* Reorg imports

* Update github.ts

* Update github.ts

* Feature/extract gh action loggin (#198)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* fix id for team

* Fix saved string

* Feature/extract gh action loggin (#200)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* fix id for team

* Fix saved string

* Add replacing of apostrophe to fix query

* add \n to AI summary error (#199)

* add \n to AI summary error

* Update github.ts

* Feature/extract gh action logging (#202)

* Feature/page titles (#203)

* Delete sidebar.tsx (#201)

* Feature/posthog analytics (#204)

* Add posthogjs

* Create providers.tsx

* Add posthog

* Add posthognode

* Create posthogTracker.ts

* Add tracker to gh action

* make posthog early

* fix list filtering

* Rename tracker

* Add tracker

* Add tracker

* Streamline data fetching

* Add tracker

* Feature/confluence login (#206)

* Create ConfluenceLoginLink.tsx

* Add confluence

* Create atlassian page

* Remove primer

* Add primer

* change link

* Fix link

* fix link, text

* Emergency removal of posthog

* REmove all posthog instances

* Correct redirect uri

* better logging

* Update atlassian.tsx

* conditionally add pic

* add logging

* Add discrimination to jira and confluence

* Save confluence

* fix link

* Fix img

* debug logging

* Fix query

* Debug logging

* change grant typ

* Go back a grant type

* change logging

* Fix url

* Some more data wrangling

* fix saving

* Fix image

* Reorg dashboard

* Add coming soon ides

* Style navbar better

* Make sidebar sticky, add logout button

* Add workspace query

* Ignore name

* Remove unused code

* ignore calling

* try other import to release

* Move email to client

* Change logging

* fix obj accessing

* Add workspace, request emails

* Add email, optimize requests

* fix query

* Get refresh token on login

* Add confluence

* Improve logging

* reduce logging

* Better logging

* Create confluence.ts

* Add confluence

* Fix value

* Create confluence.ts

* Add logging

* logging

* Check if null

* Fix nulls

* Change how tokens are updated

* Rename

* Fixes to query executing

* Rename action

* Fixes and error handling

* Fix missing param

* Add offline access scope

* Several fixes to tokens

* Logging improvements

* Delete test Api

* Reduce throwing

* Print full payload in this repo

* Stringify full response

* Remove data dumping

* Change pricing calculation and text to

* Update README.md (#207)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Feature/confluence settings (#211)

* Make all unlogged services lose title

* Create watermelon.ts

* Use standard type

* use standard types

* Use standard types

* Create general case helper

* Make code more readable

* Allow number to be a string, like a slack channel

* Add possible body

* Standardize helpers

* Remove unused helpers

* Add possible image element

* Remove unused code

* use standard response

* remove logging, fix text

* Fix token errors in confluence

* Better responses on success and failure

* Check nulls

* Add max results

* Add limit using amount

* create StandardAPIInput

* Fix type

* Create OptionDropdown component

* Change to max 5

* Fix code

* Make it component based, add confluence

* Remove component unused

* Fix loading page

* Feature/standard api responses (#209)

* Make all unlogged services lose title

* Create watermelon.ts

* Use standard type

* use standard types

* Use standard types

* Create general case helper

* Make code more readable

* Allow number to be a string, like a slack channel

* Add possible body

* Standardize helpers

* Remove unused helpers

* Add possible image element

* Remove unused code

* use standard response

* remove logging, fix text

* Fix token errors in confluence

* Better responses on success and failure

* Check nulls

* Add max results

* Add limit using amount

* create StandardAPIInput

* Fix type

* Create OptionDropdown component

* Change to max 5

* Fix code

* Removed unused element

* Reduce code size

* Add confluence

* Reduce code

* Further reduce code

* Remove unneeded brackets

* Fix links (#215)

* Create LICENSE (#216)

Adding an Apache 2.0 license with a Commons clause to this repo to be able to make it source-available and become a buyer based open core company

* Feature/all uses approuter (#217)

* Use const instead of let

* Change to app router

* export page

* Fix redirect with client component

* redirect instead of opening new window

* Test suggesting other services

* Fix file

* fix json

* Fix suggestions UI

* Correctly use ternary

* Fix small error

* Create loading.tsx

* standardize token name

* Standardize service name

* Move gitlab to approuter

* Move github to approuter

* Standardize name

* Add comments

* Remove page replication

* Move notion to approuter

* Move slack to approuter

* Move bitbucket to approuter

* Create general page component

* Use component page

* Use component page

* Remove unused imports

* Ignore fleet

* Fix username

* Move Jira to App router

* Move Discord to App Router

* Move Atlassian to App Router

* Create general loginArray function

* Remove conflicting files

---------

Co-authored-by: baristaGeek <estebanvargas94@gmail.com>

* Create github.ts

* Add all other services

* Fix typings

* Fix import order

* Create settings getter page

* patch settings on save

* log props

* properly save and update settings

* Feature/obey settings (#175)

* get all data at the same time

* Remove unused code

* Restore function

* Fix data flow

* Fix possible nulls

* Remove whitespace

* Added settings link

* Obey settings amount

* Respect AI summary

* Prevent writing if other deactivated

* fix typo

* fix typo

* Respect amount

* Fix comment logging

* Feature/backend extension (#170)

* Create getContext.ts

* fix return error

* Fix GitHub Fetch?

* Add slack, fix jira

* change readme

* Prettified

* Fixed logging of undefined

* Update README.md

---------

Co-authored-by: baristaGeek <estebanvargas94@gmail.com>
Co-authored-by: baristaGeek <baristaGeek@users.noreply.github.com>

* Feature reduce scope from slack (#176)

* Create getContext.ts

* fix return error

* Fix GitHub Fetch?

* Add slack, fix jira

* change readme

* Prettified

* Fixed logging of undefined

* reduce scopes

* Make search public only

* Update README.md

---------

Co-authored-by: baristaGeek <estebanvargas94@gmail.com>
Co-authored-by: baristaGeek <baristaGeek@users.noreply.github.com>

* Create addActionCount.ts

* Add notion

* Remove notion login link temporarily

* Add notion back

* Add notion querying

* correctly pass props to notion (#179)

* correctly pass props to notion

* Update README.md

* fix undefined id error

* Add better error logging

* Add notion to settings

* Remove extra character

* Create getHoverData.ts

* Now uses commitTitle

* Scrub action for app

* Change logging

* Extract count markdown

* Fix/typings improvements (#183)

* Add typings

* Fix possible nulls

* Add LoginGridProps type

* Fix possible null

* remove breaklines

* Add export

* Add import

* Chore/codebase typings and nulls (#185)

* Allow max to be 5

* check nulls

* add typings

* fix possible null

* Add typings

* Feature/team and navbar  (#182)

* add server-only

* add client-only

* Move to RSC

* remove logging

* fix typings

* fix typings

* add LoginGridProps

* Fix possibly null

* Add types

* Check nulls

* fix possible nulls

* ignore errors in lightly used api

* Set conditionally

* Check null

* check null

* fix typings

* fix null errors

* fix null

* add typings

* fix props passing

* Add typing

* Add typing

* fix typings

* Fix typing errors

* use nonnull assertion

* Add styles

* Move to app folder

* Adhere to app api route

* Make it non default

* upgrade next-auth

* restore session provider

* Fixes in adapter

* move auth to pages to test use

* Fix login route

* fix import

* Pass authprovider

* Added sidebar test

* Add sidebar

* Fix navbar, extract navbar

* Fix layout

* Hide elements if no session

* Update Navbar.tsx

* Fix layout

* Make app dark

* Extract form

* Extract navbar

* Move to app

* Move layout out

* Remove logging

* REmove logging

* Move logingrid to RSC

* Remove logingrid

* Add layout

* Remove logging

* Remove logging

* Create getTeammates.ts

* Create Team page

* Fix heading

* Delete github.tsx

* Move to App router

* Update README.md, add title (#180)

* Update README.md, add title

* Update README.md

* Update README.md

* Update README.md (#181)

* Move to RSC

* Fix Try app ui

* Remove data logging

* Make card details a page

* Move layout to master layout

* Fix type

* Fix layout order

* Remove billing link

* Adde repo owner and number to charge

* Add linear to form (#190)

* Add linear to form

* Add Linear to query

* Create getLinear.ts

* Add linear fetching

* add logging

* paralelize requests, shorten code

* Fix return

* Move app link up

* Create sendTeammateInvite.ts

* Add emailer form

* Fix sending handler

* Move to API call

* Create loading.tsx

* Feature/extract gh action loggin (#198)

* Create addActionLog.ts

* Use extracted method

* Reduce file size

* Remove logging

* fix id for team

* Fix saved string

* Feature/page titles (#203)

* Feature/posthog analytics (#204)

* Add posthogjs

* Create providers.tsx

* Add posthog

* Add posthognode

* Create posthogTracker.ts

* Add tracker to gh action

* make posthog early

* fix list filtering

* Rename tracker

* Add tracker

* Add tracker

* Streamline data fetching

* Add tracker

* Feature/confluence login (#206)

* Create ConfluenceLoginLink.tsx

* Add confluence

* Create atlassian page

* Remove primer

* Add primer

* change link

* Fix link

* REmove all posthog instances

* Reorg dashboard

* Make sidebar sticky, add logout button

* Update README.md (#207)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Feature/confluence settings (#211)

* Make all unlogged services lose title

* Create watermelon.ts

* Use standard type

* use standard types

* Use standard types

* Create general case helper

* Make code more readable

* Allow number to be a string, like a slack channel

* Add possible body

* Standardize helpers

* Remove unused helpers

* Add possible image element

* Remove unused code

* use standard response

* remove logging, fix text

* Fix token errors in confluence

* Better responses on success and failure

* Check nulls

* Add max results

* Add limit using amount

* create StandardAPIInput

* Fix type

* Create OptionDropdown component

* Change to max 5

* Fix code

* Make it component based, add confluence

* Remove component unused

* Fix loading page

* Feature/all uses approuter (#217)

* Use const instead of let

* Change to app router

* Create OptionDropdown component

* Change to max 5

* Fix code

* Extract types

* Use standard data

* Reduce code

* Remove unused code

* Delete atlassian.tsx

* Delete settings.tsx

* Delete route.ts

* Rem,ove unused params

* Make keys defined

* Error fixes

* Update sendTeammateInvite.ts

* Delete sidebar.tsx

* Update page.tsx

---------

Co-authored-by: baristaGeek <estebanvargas94@gmail.com>
Co-authored-by: baristaGeek <baristaGeek@users.noreply.github.com>
  • Loading branch information
3 people authored Aug 3, 2023
1 parent b493bef commit 728a8ec
Show file tree
Hide file tree
Showing 45 changed files with 1,091 additions and 1,172 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ yarn.lock
.vercel
.env
.env*.local
.fleet/settings.json
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# Watermelon.tools
To start developing, clone and:

To start developing, clone and:

```
yarn
yarn dev
```

Or with npm

```
npm i
npm run dev
```

Or with npm

```
Expand All @@ -17,7 +27,9 @@ We use a recent version of Next. You may refer to the documentation at https://n

This repo is automatically deployed on vercel to [app.watermelontools.com](app.watermelontools.com) on merges to `main`.

All the backend lives as serverless functions under `api`, with the route being the filename.
All the backend lives as serverless functions under `api`, with the route being the filename.

We now use the new app router for some features.

We now use the new app router for some features.

Expand Down
5 changes: 5 additions & 0 deletions app/atlassian/loading.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import LoadingConnectedService from "../../utils/services/loading";

export default function loadingConnetedService() {
return <LoadingConnectedService />;
}
136 changes: 59 additions & 77 deletions pages/atlassian.tsx → app/atlassian/page.tsx
Original file line number Diff line number Diff line change
@@ -1,81 +1,56 @@
import { useEffect, useState } from "react";
import { useRouter } from "next/router";
import Link from "next/link";
import saveJiraUserInfo from "../utils/db/jira/saveUserInfo";
import saveConfluenceUserInfo from "../utils/db/confluence/saveUserInfo";
import GitHubLoginLink from "../components/GitHubLoginLink";
export default function Jira({ organization, avatar_url, userEmail, error }) {
const [timeToRedirect, setTimeToRedirect] = useState(10);
const router = useRouter();
useEffect(() => {
const interval = setInterval(() => {
setTimeToRedirect(timeToRedirect - 1);
if (timeToRedirect === 0) {
router.push("/");
}
}, 1000);
return () => clearInterval(interval);
}, [timeToRedirect]);
let isConfluence = userEmail.startsWith("c");
import { getServerSession } from "next-auth";
//change this to import correctly
import saveJiraUserInfo from "../../utils/db/jira/saveUserInfo";
import saveConfluenceUserInfo from "../../utils/db/confluence/saveUserInfo";
import { authOptions } from "../api/auth/[...nextauth]/route";
import getAllPublicUserData from "../../utils/api/getAllUserPublicData";

return (
<div className="Box" style={{ maxWidth: "100ch", margin: "auto" }}>
<div className="Subhead">
<h2 className="Subhead-heading px-2">
You have logged in with {isConfluence ? "Confluence" : "Jira"} to{" "}
{organization}
</h2>
</div>
<img
src={avatar_url}
alt={`${isConfluence ? "Confluence" : "Jira"} organization image`}
className="avatar avatar-8"
/>
<div>
<p className="text-emphasized">We recommend you login to GitHub</p>
<GitHubLoginLink userEmail={userEmail} />
</div>
<div>
<p>You will be redirected in {timeToRedirect}...</p>
<p>
If you are not redirected, please click <Link href="/">here</Link>
</p>
{error && <p>{error}</p>}
</div>
</div>
);
}
export async function getServerSideProps(context) {
let f;
import ConnectedService from "../../utils/services/page";
import LoginArray from "../../utils/services/loginArray";

export default async function ServicePage({
searchParams,
}: {
searchParams: { [key: string]: string | undefined };
}) {
const session = await getServerSession(authOptions);
const userEmail = session?.user?.email;
const userName = session?.user?.name;
const { code, state } = searchParams;
let isConfluence = state?.startsWith("c");

if (context.query.code) {
f = await fetch(`https://auth.atlassian.com/oauth/token`, {
let error = "";
// change service name
const serviceName = isConfluence ? "Confluence" : "Jira";
const [userData, serviceToken] = await Promise.all([
getAllPublicUserData({ userEmail }).catch((e) => {
console.error(e);
return null;
}),
// change this fetch
fetch(`https://auth.atlassian.com/oauth/token`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
grant_type: "authorization_code",
code: context.query.code,
code: code,
redirect_uri: "https://app.watermelontools.com/atlassian",
client_id: process.env.NEXT_PUBLIC_JIRA_CLIENT_ID,
client_secret: process.env.JIRA_CLIENT_SECRET,
}),
});
} else
return {
props: {
error: "no code",
},
};
const json = await f.json();
}),
]);

// the recommended services should not be of the same category as the current one
const nameList = ["Linear", "Slack", "Notion", "Bitbucket"];
const loginArray = LoginArray({ nameList, userEmail, userData });

const json = await serviceToken.json();
let userInfoJson;
if (json.error) {
console.error("Atlassian error", json);
return {
props: {
error: json.error,
},
};
error = json.error;
} else {
const { access_token } = json;
const orgInfo = await fetch(
Expand All @@ -89,7 +64,6 @@ export async function getServerSideProps(context) {
}
);
const orgInfoJson = await orgInfo.json();
let isConfluence = context.query.state.startsWith("c");
if (isConfluence) {
const userInfo = await fetch(
`https://api.atlassian.com/ex/confluence/${orgInfoJson[0].id}/rest/api/user/current`,
Expand All @@ -101,7 +75,7 @@ export async function getServerSideProps(context) {
},
}
);
const userInfoJson = await userInfo.json();
userInfoJson = await userInfo.json();
await saveConfluenceUserInfo({
access_token: json.access_token,
refresh_token: json.refresh_token,
Expand All @@ -110,7 +84,7 @@ export async function getServerSideProps(context) {
url: orgInfoJson[0].url,
org_avatar_url: orgInfoJson[0].avatarUrl,
scopes: orgInfoJson[0].scopes,
watermelon_user: context.query.state.slice(1),
watermelon_user: state?.slice(1),
user_email: userInfoJson.email,
user_avatar_url:
orgInfoJson[0].url + userInfoJson?.profilePicture?.path,
Expand All @@ -128,7 +102,7 @@ export async function getServerSideProps(context) {
},
}
);
const userInfoJson = await userInfo.json();
userInfoJson = await userInfo.json();
await saveJiraUserInfo({
access_token: json.access_token,
refresh_token: json.refresh_token,
Expand All @@ -137,19 +111,27 @@ export async function getServerSideProps(context) {
url: orgInfoJson[0].url,
org_avatar_url: orgInfoJson[0].avatarUrl,
scopes: orgInfoJson[0].scopes,
watermelon_user: context.query.state.slice(1),
watermelon_user: state?.slice(1),
user_email: userInfoJson.emailAddress,
user_avatar_url: userInfoJson?.avatarUrls?.["48x48"],
user_id: userInfoJson.accountId,
user_displayname: userInfoJson.displayName,
});
}
return {
props: {
userEmail: context.query.state,
organization: orgInfoJson[0]?.name,
avatar_url: orgInfoJson[0]?.avatarUrl,
},
};

return (
<ConnectedService
serviceName={serviceName}
displayName={userInfoJson.displayName}
teamName={orgInfoJson[0].name}
avatarUrl={
isConfluence
? orgInfoJson[0].url + userInfoJson?.profilePicture?.path
: userInfoJson?.avatarUrls?.["48x48"]
}
loginArray={loginArray}
error={error}
/>
);
}
}
5 changes: 4 additions & 1 deletion app/billing/page.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import { authOptions } from "../api/auth/[...nextauth]/route";
import { getServerSession } from "next-auth";
import CardElement from "./cardElement";

import { Metadata } from "next";
export const metadata: Metadata = {
title: "Billing",
description: "Pay for the Context of your team",
};

async function BillingPage() {
const session = await getServerSession(authOptions);
let userEmail = session?.user?.email;
return (
<div
style={{
Expand Down
5 changes: 5 additions & 0 deletions app/bitbucket/loading.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import LoadingConnectedService from "../../utils/services/loading";

export default function loadingConnetedService() {
return <LoadingConnectedService />;
}
88 changes: 88 additions & 0 deletions app/bitbucket/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import { getServerSession } from "next-auth";
//change this to import correctly
import saveUserInfo from "../../utils/db/bitbucket/saveUser";

import { authOptions } from "../api/auth/[...nextauth]/route";
import getAllPublicUserData from "../../utils/api/getAllUserPublicData";

import ConnectedService from "../../utils/services/page";
import LoginArray from "../../utils/services/loginArray";

export default async function ServicePage({
searchParams,
}: {
searchParams: { [key: string]: string | string[] | undefined };
}) {
const session = await getServerSession(authOptions);
const userEmail = session?.user?.email;
const userName = session?.user?.name;
const { code, state } = searchParams;
let error = "";
// change service name
const serviceName = "Bitbucket";
const [userData, serviceToken] = await Promise.all([
getAllPublicUserData({ userEmail }).catch((e) => {
console.error(e);
return null;
}),
// change this fetch
fetch(`https://bitbucket.org/site/oauth2/access_token`, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: `grant_type=authorization_code&code=${code}&client_id=${process.env.BITBUCKET_CLIENT_ID}&client_secret=${process.env.BITBUCKET_CLIENT_SECRET}`,
}),
]);

// the recommended services should not be of the same category as the current one
const nameList = ["Jira", "Slack", "Notion", "Confluence"];
const loginArray = LoginArray({ nameList, userEmail, userData });

const json = await serviceToken.json();
if (json.error) {
error = json.error;
} else {
// get user correctly
const headers = {
Authorization: `Bearer ${json.access_token}`,
};

const requests = [
fetch(`https://api.bitbucket.org/2.0/user`, { headers }),
fetch(`https://api.bitbucket.org/2.0/user/permissions/workspaces`, {
headers,
}),
fetch(`https://api.bitbucket.org/2.0/user/emails`, { headers }),
];

let [user, workspace, email] = await Promise.all(requests);

let userJson = await user.json();
let workspaceJson = await workspace.json();
let emailJson = await email.json();
// save user correctly
await saveUserInfo({
access_token: json.access_token,
refresh_token: json.refresh_token,
id: userJson.account_id,
avatar_url: userJson.links.avatar.href,
watermelon_user: state,
name: userJson.display_name,
location: userJson.location,
workspace: workspaceJson.values[0].workspace.slug,
email: emailJson.values[0].email,
});

return (
<ConnectedService
serviceName={serviceName}
displayName={userJson.display_name}
teamName={workspaceJson.values[0].workspace.slug}
avatarUrl={userJson.links.avatar.href}
loginArray={loginArray}
error={error}
/>
);
}
}
5 changes: 5 additions & 0 deletions app/discord/loading.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import LoadingConnectedService from "../../utils/services/loading";

export default function loadingConnetedService() {
return <LoadingConnectedService />;
}
Loading

1 comment on commit 728a8ec

@vercel
Copy link

@vercel vercel bot commented on 728a8ec Aug 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.