* Add TS configs and improve dir structure
* Add TS configs and improve dir structure
* Fix components exports from index
* chore: prettier
* Add tsconfig and then fix the linter warnings
* Add @babel/preset-typescript
* Fix eslint rule and update btn component to fix storybook
* Fix TS and Jest configs
Converted all remaining files to TS as well
* Remove TS ignored rules and fixed some TS & jest stuff
* Revert to old directory structure
* Use absolute versions in package.json
* enable ts strict to infer types
Co-authored-by: Hamza Waleed <hamza.waleed@arbisoft.com>
* chore: rename APIs and Microservices to include "Backend" (#42515)
* fix typo
* fix typo
* undo change
* Corrected grammar mistake
Corrected a grammar mistake by removing a comma.
* change APIs and Microservices cert title
* update title
* Change APIs and Microservices certi title
* Update translations.json
* update title
* feat(curriculum): rename apis and microservices cert
* rename folder structure
* rename certificate
* rename learn Markdown
* apis-and-microservices -> back-end-development-and-apis
* update backend meta
* update i18n langs and cypress test
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: add development to front-end libraries (#42512)
* fix: added-the-word-Development-to-front-end-libraries
* fix/added-the-word-Development-to-front-end-libraries
* fix/added-word-development-to-front-end-libraries-in-other-related-files
* fix/added-the-word-Development-to-front-end-and-all-related-files
* fix/removed-typos-from-last-commit-in-index.md
* fix/reverted-changes-that-i-made-to-dependecies
* fix/removed xvfg
* fix/reverted changes that i made to package.json
* remove unwanted changes
* front-end-development-libraries changes
* rename backend certSlug and README
* update i18n folder names and keys
* test: add legacy path redirect tests
This uses serve.json from the client-config repo, since we currently use
that in production
* fix: create public dir before moving serve.json
* fix: add missing script
* refactor: collect redirect tests
* test: convert to cy.location for stricter tests
* rename certificate folder to 00-certificates
* change crowdin config to recognise new certificates location
* allow translations to be used
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
* add forwards slashes to path redirects
* fix cypress path tests again
* plese cypress
* fix: test different challenge
Okay so I literally have no idea why this one particular challenge
fails in Cypress Firefox ONLY. Tom and I paired and spun a full build
instance and confirmed in Firefox the page loads and redirects as
expected. Changing to another bootstrap challenge passes Cypress firefox
locally. Absolutely boggled by this.
AAAAAAAAAAAAAAA
* fix: separate the test
Okay apparently the test does not work unless we separate it into
a different `it` statement.
>:( >:( >:( >:(
Co-authored-by: Sujal Gupta <55016909+heysujal@users.noreply.github.com>
Co-authored-by: Noor Fakhry <65724923+NoorFakhry@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
* fix(client): fix client
* fix propType and add comment
* revert user.json prettification
* slight type refactor and payload correction
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* update ChallengeFile type imports
* add cypress test for code-storage
* update test and storage epic
* fix Shaun's tired brain's logic
* refactor with suggestions
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* update codeReset
* increate cypress timeout because firefox is slow
* remove unused import to make linter happy
* use focus on editor
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* use more specific seletor for cypress editor test
* account for silly null challengeFiles
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* feat: initial button setup client
* feat: rename walletsButton to .tsx
* chore: typescriptize wallet component
* chore: re-add keys to config, env, etc + check in gatsby-node
* feat: refactor donate form and wallet component
* feat(client): set labels correctly
* chore: add stripe package back to server
* chore: add stripe back to allowed paths
* chore: copy donate.js code from PR #41924
* feat: attempt to make back end work
* feat: make redux work
* feat: clean up
* feat: hokify
* feat: add error handling
* fix: back-end should be working
* fix: type errors
* fix: clean up back-end
* feat:addd styles
* feat: connect the client to the api
* feat: display wallets button everywhere
* test: add stripe key for cypress action
* test: fix for cypress tests
* test: cypress tests again
* test: maybe?
* test: more
* test: more
* test: more
* test
* askdfjasklfj
* fix: tests finally?
* revert: remove space from cypress yaml action
* remove logs
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: remove circular dependency
redux depended on templates/Challenges/redux and vice versa. This
meant that import order mattered and confusing bugs could arise.
(cherry picked from commit 7d67a4e70922bbb3051f2f9982dcc69e240d43dc)
* feat: require imports to be in alphabetical order
Import order generally does not matter, but there are edge cases
(circular imports and css imports, for example) where changing order
changes behaviour
(cherry picked from commit b8d1393a91ec6e068caf8e8498a5c95df68c2b2c)
* chore: order imports
* fix: lift up challenge description + title comps
This brings the classic Show closer to the others as they
now all create the description and title components
* fix: remove donation-saga/index circular import
(cherry picked from commit 51a44ca668a700786d2744feffeae4fdba5fd207)
* refactor: extract action-types from settings
(cherry picked from commit 25e26124d691c84a0d0827d41dafb761c686fadd)
* fix: lint errors
* feat: prevent useless renames
* refactor: extract help category map as JSON
* refactor: extract block names as json
* feat: add create-project script
* fix: correct case for tsconfig target
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* refactor: bring api jest tests to root
* refactor: pull client tests to root
* fix: remove ancient curriculum babelrc
* feat: run all jest tests at once
* fix: remove unused babelrcRoot
* chore: remove more jests
Both challengeType 11 and challengeType 3 have no seeds, so there's no
need to warn about a lack of seed.
The warning has been updated to better reflect the problem (lack of
seed, not lack of comments)
* fix(api): decouple api from curriculum
This reverts commit 8f0e441644 and
introduces the implementations from #40703.
* fix(gitpod): add curriculum build to GitPod
This reverts commit 706d70f58d and
introduces implementations from #41234.
* docs: update DevOps manual for api change (#41259)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Adds validation for the `CURRICULUM_LOCALE`
environment variable in the same way the
`CLIENT_LOCALE` value is validated.
Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>
* feat: add script to annotate challenges for translation
* fix: readdirp-walk -> readdirp
* fix: remove notranslate for frontmatter
* fix: don't output seed/solution
* feat: convert to function
Also puts in some missing 'async's to make it clearer what returns
promises.
* refactor: use meaningful names
* refactor: remove comments
* chore: update dependencies
* chore: move dir
* fix(crowdin): annotate individual answers
* fix: Use CDN for favicon
Replaces the local favicon (which was not
rendering correctly on production) with the
version served by the CDN. Also adds our other
meta tags used for PWAs and OpenGraph Protocol.
Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>
* fix: remove local manifest
Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>
Since we're adding more validation we can simplify the parser and
make sure it does catch all the comments. Rather than worry about a
load of edge cases that do not appear in our challenges.
* feat: created tool to delete step
* docs: update README.md with delete-step instructions
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
They should be handled either by nginx or by the client. Turned out a
lot of code, including the path migration, existed to support them.
Hence the large number of removals
Using the English challenge as a source for the seed, solution and tests
this takes the parts that can be translated from the translated version
of the challenge. It also translates known comments in the seed.
* first commit
* add: adding all files
* added package-lock.json
* fix: labler and getOpenPrs working
* fix: fixed bug with prFilter function
* feat: can check for multiple errors
* add: install more libraries
* refactor: uses getOpenPrs to get PRs
* packages: modified
* feature: added addComment feature
* feature: added ability to check guide errors
* add: added guideFolderChecks
* fix: corrected issue with open/close
* update: installed new libraries
* fix: updated guide checker
* feat: create license
* fix: update the comment template (#2)
* fix: comment section
* fix: add org name keys
* fix: corrected guide error logic
* fix: removed console.log
Co-Authored-By: RandellDawson <5313213+RandellDawson@users.noreply.github.com>
* fix: corrected guideFolderChecks reduce
* refactor: removed setInterval logic
* feat: added new utilities module
* fix: addComment and labler issues
* feat: changed to module.exports
* fix: improved log file data
* fix: use config var for rateLimiter
Co-Authored-By: RandellDawson <5313213+RandellDawson@users.noreply.github.com>
* fix: used config var for rateLimiter
Co-Authored-By: RandellDawson <5313213+RandellDawson@users.noreply.github.com>
* fix: add vars for production
* fix: add work-logs config
* fix: update gitconfig for work-logs
* fix: update path to work-logs
* docs(readme): add exception for admin v. user
* fix: dotenv will coerce boolean from string (#10)
* fix: changed to sync file save
* feat: updated label script
* feat: installed new libraries
* feat: renamed labelOpenPrs.js to sweeper.js
* feat: 1st attempt repo restructure
* feat: added descriptions to one-off scripts
* fix: rewrote the missing frontmatter message
* feat: created one-off scripts to find frontmatter issues
* fix: add links to relevant style guide
* fix: corrected gitignore input-files
* feat: renamed files/folders to lowercase
* fix: changed prStat.js to pr-stats.js
* fix: renamed prStat.js to pr-stats.js
* fix: renamed addLabels.js to add-labels.js
* fix: deleted typo
* feat: changed .env variables
* fix: added rateLimiter after retrieving pr files
* feat: improved logging functionality
* fix: added catch for unexpected frontmatter error
* fix: changed verbiage unexpected frontmatter error
* fix: correct logging bug
* feat: improved findFailures.js and closeOpen.js
* feat: modified the close/open scripts
* refac: moved labeler.js to pr-tasks
* fix: changed rateLimter time in close-open
* fix: changed delay between close/open
* install: added cli-progress library
* feat: added 2 progress bars for sweeper
* fix: changed rateLimiter for pr-relations script
* fix: corrected directory path for renaming of file to work
* first commit
* first commit
* test travis setup
* more travis setup
* get payload
* test
* test
* test
* app yml pull_requests write
* non-working pullRequest createComment
* problem setting permissions
* create-react-app setup.
* Added styled-components dependency.
* Merge pull request #1 from RandellDawson/feature/prototype
Created prototype.
* Merge pull request #3 from RandellDawson/feat/add-links-to-results
fix: improved input elem behavior
* wip
* test on repo
* tests passing
* fix test title
* issues--write in app.yml
* fix getLabel to createLabel pipeline
* this github scope
* Merge pull request #5 from RandellDawson/refactor/input-react-component
Implemented ref forwarding for Input component. Minor clean up.
* Merge pull request #6 from RandellDawson/feature/search-with-enter-keypress
Added the ability to search by pressing Enter. Associated refactoring.
* Merge pull request #7 from RandellDawson/feature/display-username-with-prs
Added the ability for usernames to be displayed along with found PRs.
* Merge pull request #8 from RandellDawson/feat/report-improvements
Feature: Added Pareto Report and Tabs Navigation
* Merge pull request #9 from RandellDawson/feature/styled-tab-borders
Restyled tab borders to remove doubled-up borders.
* Merge pull request #10 from RandellDawson/feature/styled-components-theme
Implemented styled-components theme.
* Merge pull request #11 from RandellDawson/feature/root-package-json
Adde `package.json` and `.gitignore` to the root folder.
* Merge pull request #14 from RandellDawson/feat/create-search-component
[feature] created Search component
* Merge pull request #16 from RandellDawson/feat/create-search-component
[Feature] Finalized Search Component functionality
* Merge pull request #18 from RandellDawson/fix/correct-search-result-messages
[Fix] Correct search result messages and add info footer
* Merge pull request #19 from RandellDawson/fix/change-link-color
[Fix] Changed links from blue to 006400
* refactor: move sweeper logic to its own directory
* feat: lernafy the sweeper
* refactor: prepare for dashboard backend move
* docs: re-arrange files for cleaner structure
* refactor: prepare @tbushman 's probot for move
* fix: prepare for importing probot
* chore(.gitignore): update root level and remove redundant copy
* refactor: prepare dashboard-client for move
* refactor: prepare repo for bringing in dashboard client
* chore: install deps, remove clutter
* feat: improve efficiency of pr relations script (#23)
* chore: update lock file (#24)
* Feature: API endpoint constants (#30)
* Implemented expeced behaviour for text input.
* Added constants for API endpoints. Refactored Footer, Pareto and Search components accordingly.
* fix: fixed several issues after move to mono repo (#31)
This PR has the following items:
1. Introduces a couple of fixes to the sweeper script from issues right before the move to the mono repo. These were related to moving labeler out of the root of the sweeper folder and placing into the pr-tasks sub-folder.
2. Combined two scripts which were being used to update the data manually on Glitch (pr-relations.glitch.me). The new one-off script (get-pr-relations-data.js) downloads the current data.json and then pulls down applicable Github data which updates the data.json and automatically uploads it back to the Glitch server.
3. In an effort to use the same log file across all current one-off scripts and sweeper.js, the ProcessLog class was modified, so now every log created has the same JSON structure as is uploaded to the Glitch server. This removed a lot of redundant code across 3 files.
4. During a pair-coding session with @honmanyau, we tweaked the UI for the Dashboard app to give it a more consistent look across all views.
5. Based on feedback from a couple of the moderators using the new Dashboard app, the PR title was added along with some other styling.
6. Added some environment variables for running dashboard-api and dashboard-client in a development mode.
7. Added a sample_data.json file as a starter file, so someone does not have to do a full data pull to get things up and running.
8. Modified Pareto view to only display files with 2 or more PRs to speed up the report.
* fix(.env): update paths relative from root of repo (#37)
* docs: update notes on the setup
* feat(tools): add eslint and prettier (#19)
* refactor(lint): apply linting from the tools (#39)
* Revert "refactor(lint): apply linting from the tools (#39)" (#40)
This reverts commit 8be7d12cb3.
* chore: made changes to move off of Glitch
* fix: removed extra lines from sample.env
* docs: added local setup instructions
* docs: update local setup instruction
* docs: update contributing
* docs: create readme.md
* fix(client): CRA config conflicts with the babel-eslint from root (#42)
* feat: add routes and mongodb (#34)
* fix: removed dependace on data.json
* docs: updated README.md
* fix: corrected issues with pareto.js and pr.js
* refactor: simplified mongoose related logic
* feat: added seed shortcut to package.json
* fix: corrected typo
* fix: fixed bug with info.js
* fix: simplified info.js
* fix: corrected updatedAt Schema issue
* fix: corrected typo in comment
* chore(lockfile): update after install from root
* fix: add a seed script to root
* Fix/restructuring and unify code logic (#48)
* fix: first pass at restructure linting cleanup
* fix: second pass of restructure
* fix: corrected path for index.html
* Fix/restructuring (#49)
* moving server scripts to probot/index.js
* non-working express.static config
* config move for seed
* change constant API_HOST to /contribute/
* remove winston
* remove error middleware
* put back client in lerna.json
* fix: fixed CRA static folder issue
* fix: added work-logs folder for one-offs
* small changes
* change /contribute route to /dashboard
* fix: use cross-env in package.json
* formatted with prettier (#50)
* encode mongo uri (#51)
* fix: removed ref to probot/client/.env
* Fixed the format command (#55)
* chore: update lockfile (#56)
* fix: corrected config.oneoff.productionRun issue (#52)
In an earlier PR I use `joi` to make PRODUCTION_RUN environment variables a Boolean, but did not change to the correct reference and did not change the code logic to compare to a Boolean instead of a String value (as it had been before). This PR corrects that logic, so that the one-off scripts will work in a production mode again. Also, removed the now unnecessary ` SKIP_PREFLIGHT_CHECK` environment variable from the `probot/.env` file.
* fix: ran npm run format
* fix: corrected some require paths for update-db.js
* fix: drop only specified collections in models.js
* fix: removed lerna for two run scripts
* remove unnecessary environment variables and npm scripts (#59)
* fix: removed config variables not needed
* fix: added pem files to gitignore
* feat: added one-off-script to add english labels
* fix: modified script description
* fix: updated script to use aggregate function
* fix: added note about needing to change url
* init tests
* .toHaveBeenCalledTimes(0) for unrelated PR files
* run tests from root
* lerna run test --scope determined by 'name' field in each package.json
* run jsx in node with .mjs
* shut down mongoose afterEach test
* npm-run-all
* mongoose in tests
* comment out failing script for now
* use probot to get filenames
* remove jsdom and uncomment mongo updateOne test
* only connect mongoose once and better test for PRtest.delete
* fix: added cross-env on npm test and start
* fix: ignore PEM files
* fix: get probot to add stff to db
* fix: changed to aggregate to get info
* fix: renamed update-db to reflect probot
* dashboard route working
* fix: remove calls to update db for now
* fix: update db script for crontab
* Fix: Removal of seed-db (#64)
* fix: removed seeding from production
* fix: removed npm start from instructions
* Fix: Simplify log files for one off scripts (#65)
* fix: removed seeding from production
* fix: removed npm start from instructions
* fix: removed indices from log file
* fix: update lockfile (#66)
* docs: create a CoC
* fix: increased the number of files pulled per PR to Github max of 300 (#70)
* fix: made CRA work with local server running
* added run command just for CRA dev mode
* feat: started working on adding Pareto filters
* fix: added missing fonts for landing page
* fix: filter functionality complete
* fix: removed other as an option
* fix: make language all if no language for filetype
* feat: add some develop scripts
* responsive css (#73)
* Fix broke link of contribution guide (#75)
* [Fix] Update landing page links and make styling for landing page and Dashboard match (#79)
* fix: corrected links and changed header links
* fix: added fonts
* fix: changed layout of Pareto options
* fix: match main page styling
* fix: adjusted padding on menu
* fix: correct link href for Home
* fix: changed title of Dashbaord
* [Fix] Corrected client page title typo (#83)
* fix: corrected typo in page title
* fix: add info record if no collection exists
* docs: updated docs relating to local dev ports
* fix: add count increment when adding
* fix: be able to specify lanuage
* feat: new script to find merge conflicts
* fix: added recheck for unknown status
* fix: add pr number to no results message
* fix: changed from notifying to adding label
* chore: update lockfiles (#92)
* docs: update setup docs (#93)
* fix: update lerna config to install in ci mode
* docs: update readme
* fix/update-local-setup-doc (#98)
* fix/update-local-setup-doc
* fix/capitalization
* Update docs/README.md
Co-Authored-By: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
* Update docs/README.md
Co-Authored-By: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
* Update docs/README.md
Co-Authored-By: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
* Update docs/README.md
Co-Authored-By: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
* fix/update-homepage-instruction
* fix: remove all guide related code
* chore: remove eslint config from dashboard
* fix: temporarily pause linting of tools/dashboard
Remove this when we have time to configure it properly.
* fix: pause testing on tools/dashboard
Co-authored-by: Randell Dawson <rdawson@onepathtech.com>
Co-authored-by: RandellDawson <5313213+RandellDawson@users.noreply.github.com>
Co-authored-by: tbushman <tbushman@pu.bli.sh>
Co-authored-by: Honman Yau <honmanyau@users.noreply.github.com>
Co-authored-by: Valeriy <ValeraS@users.noreply.github.com>
Co-authored-by: Tracey Bushman <tracey.bushman@gmail.com>
Co-authored-by: Niraj Nandish <nirajnandish@icloud.com>
Co-authored-by: Musthaq Ahamad <musthu.gm@gmail.com>
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* Added displayUsername and username update functionality
* fix: move username assignment to safe place
moved the username assignment down a statement so that it doesn't cause exception
* fix: handle missing username or displayUsername
* refactor: remove redundant code
fix: the rest of the typo (unsunscribe to unsubscribe)
fix: restrict copyright and copyright-policy and add appropriate redirects
fix/forgot-to-save-this-file-before-last-commit
fix: remove-duplicate+fix-typo
fix: update-snapshot
The linter now checks that fences have languages and that those languages are
supported by PrismJS. The linter has been extended over the guide with its own
set of rules that only validate code fences.