{"id":24190028,"url":"https://github.com/iamsjunaid/crm-backend","last_synced_at":"2025-09-21T14:31:38.469Z","repository":{"id":221837700,"uuid":"755507197","full_name":"iamsjunaid/crm-backend","owner":"iamsjunaid","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-11T06:35:47.000Z","size":91,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-01-13T14:58:29.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamsjunaid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-10T12:27:42.000Z","updated_at":"2024-02-10T13:00:03.000Z","dependencies_parsed_at":"2024-02-10T14:23:28.507Z","dependency_job_id":"e68753df-52ad-469a-901b-d36fdb80579d","html_url":"https://github.com/iamsjunaid/crm-backend","commit_stats":null,"previous_names":["iamsjunaid/crm-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamsjunaid/crm-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsjunaid%2Fcrm-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsjunaid%2Fcrm-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsjunaid%2Fcrm-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsjunaid%2Fcrm-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamsjunaid","download_url":"https://codeload.github.com/iamsjunaid/crm-backend/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsjunaid%2Fcrm-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276253065,"owners_count":25610806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-21T02:00:07.055Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-13T14:58:23.541Z","updated_at":"2025-09-21T14:31:38.185Z","avatar_url":"https://github.com/iamsjunaid.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruby on Rails Course\n\nIf you are not familiar with linters and GitHub Actions, read [root level README](../README.md).\n\n## Set-up GitHub Actions\n\nThis GitHub Action is going to run [Rubocop](https://docs.rubocop.org/en/stable/) and [Stylelint](https://stylelint.io/) to help you find style issues.\n\n[Stylelint](https://stylelint.io/) is a linter for your stylesheets that helps you avoid errors and enforce conventions.\n\n[Rubocop](https://docs.rubocop.org/en/stable/) is a Ruby static code analyzer (a.k.a. linter) and code formatter. It will enforce many of the guidelines outlined in the community [Ruby Style Guide](https://rubystyle.guide/).\n\nPlease do the following **steps in this order**:\n\n1. In the first commit of your feature branch create a `.github/workflows` folder and add a copy of [`.github/workflows/linters.yml`](.github/workflows/linters.yml) to that folder.\n    - **Remember** to use the file linked above\n    - **Remember** that `.github` folder starts with a dot.\n2. **Do not make any changes in config files - they represent style guidelines that you share with your team - which is a group of all Microverse students.**\n    - If you think that change is necessary - open a [Pull Request in this repository](../README.md#contributing) and let your code reviewer know about it.\n3. When you open your first pull request you should see the result of the GitHub Actions:\n\n![gh actions checks](../assets/images/gh-actions-rubocop-stylelint-checks.png)\n\nClick on the `Details` link to see the full output and the errors that need to be fixed:\n\n![gh actions failing checks](../assets/images/gh-actions-rubocop-failing-checks.png)\n\n## Set-up linters in your local env\n\n**Note**: The `npm` package manager is going to create a `node_modules` directory to install all of your dependencies. You shouldn't commit that directory. To avoid that, you can create a [`.gitignore`](https://git-scm.com/docs/gitignore) file and add `node_modules` to it:\n\n```\n# .gitignore\nnode_modules/\n```\n\n### Rubocop\n\n1. Add this line to the `Gemfile`\n    ```\n    gem 'rubocop', '\u003e= 1.0', '\u003c 2.0'\n    ```\n    *not sure how to use Gemfile? Read [this](https://bundler.io/v1.15/guides/bundler_setup.html)*.\n2. Run `bundle install`.\n3. Copy [.rubocop.yml](./.rubocop.yml) to the root directory of your project\n4. **Do not make any changes in config files - they represent style guidelines that you share with your team - which is a group of all Microverse students.**\n    - If you think that change is necessary - open a [Pull Request in this repository](../README.md#contributing) and let your code reviewer know about it.\n5. Run `rubocop`.\n6. Fix linter errors.\n7. **IMPORTANT NOTE**: feel free to research [auto-correct options for Rubocop](https://rubocop.readthedocs.io/en/latest/auto_correct/) if you get a flood of errors but keep in mind that correcting style errors manually will help you to make a habit of writing a clean code!\n\n### Stylelint\n\n1. Run\n\n   ```\n   npm install --save-dev stylelint@13.x stylelint-scss@3.x stylelint-config-standard@21.x stylelint-csstree-validator@1.x\n   ```\n\n   *not sure how to use npm? Read [this](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).*\n\n2. Copy [.stylelintrc.json](./.stylelintrc.json) to the root directory of your project.\n3. **Do not make any changes in config files - they represent style guidelines that you share with your tem - which is a group of all Microverse students.**\n   - If you think that change is necessary - open a [Pull Request in this repository](../README.md#contributing) and let your code reviewer know about it.\n4. Run `npx stylelint \"**/*.{css,scss}\"` on the root of your directory of your project.\n5. Fix linter errors.\n6. **IMPORTANT NOTE**: feel free to research [auto-correct options for Stylelint](https://stylelint.io/user-guide/usage/options) if you get a flood of errors but keep in mind that correcting style errors manually will help you to make a habit of writing a clean code!\n\n## RSpec/Heroku Actions\n\nFeel free to add your own deployment actions which can run your tests and deploy to Heroku.\n\nMake sure that you do not modify the [`.github/workflows/linters.yml`](.github/workflows/linters.yml) but that you create a separe GitHub Action workflow file for that.\n\n- [GitHub Actions with Ruby on Rails: Setting up Continuous Integration](https://gorails.com/episodes/github-actions-continuous-integration-ruby-on-rails)\n- [Deploying to Heroku from GitHub Actions](https://dev.to/heroku/deploying-to-heroku-from-github-actions-29ej)\n- [Building a Rails CI pipeline with GitHub Actions](https://boringrails.com/articles/building-a-rails-ci-pipeline-with-github-actions/)\n- [Github Actions to run Rubocop and RSpec tests on Rails with Postgres](https://dev.to/abdellani/github-actions-to-run-rubocop-and-rspec-tests-on-rails-with-postgres-47i)\n\n## Troubleshooting\n\n- If you are building an API only Rails application\nFor API only Rails application you can remove the Stylelint config. To do so remove line no. [23](https://github.com/microverseinc/linters-config/blob/f0c812753d0418288c404ed4a441a2e7370e9f4e/ror/.github/workflows/linters.yml#L23) to [36](https://github.com/microverseinc/linters-config/blob/f0c812753d0418288c404ed4a441a2e7370e9f4e/ror/.github/workflows/linters.yml#L36) from the [linter.yml]((https://github.com/microverseinc/linters-config/blob/master/ror/.github/workflows/linters.yml)) file.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamsjunaid%2Fcrm-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamsjunaid%2Fcrm-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamsjunaid%2Fcrm-backend/lists"}