{"id":20122059,"url":"https://github.com/pjiwm/devops","last_synced_at":"2026-04-14T15:31:42.850Z","repository":{"id":143569385,"uuid":"613957126","full_name":"Pjiwm/devops","owner":"Pjiwm","description":"Kanban board library, for creating teams, projects and tasks","archived":false,"fork":false,"pushed_at":"2023-04-02T18:13:41.000Z","size":3460,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-14T06:17:44.334Z","etag":null,"topics":["design-patterns","devops","docker","jest","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pjiwm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-03-14T15:51:35.000Z","updated_at":"2024-01-18T23:04:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8cc5c80-7e54-4aa8-ab6c-7d205d4fbf3f","html_url":"https://github.com/Pjiwm/devops","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pjiwm/devops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pjiwm%2Fdevops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pjiwm%2Fdevops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pjiwm%2Fdevops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pjiwm%2Fdevops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pjiwm","download_url":"https://codeload.github.com/Pjiwm/devops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pjiwm%2Fdevops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31803195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["design-patterns","devops","docker","jest","nodejs","typescript"],"created_at":"2024-11-13T19:34:35.576Z","updated_at":"2026-04-14T15:31:42.835Z","avatar_url":"https://github.com/Pjiwm.png","language":"TypeScript","readme":"\n\n# devops\n\nSchool project for building a kanban board with a variety of devops features.\nThe goal of this project is to use a handful of design patterns to achive a structured and maintainable codebase.\n\n\n![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026labelColor=ffffff\u0026logoColor=3178C6\u0026logo=typescript)\n![Jest](https://img.shields.io/badge/Jest-323330?style=for-the-badge\u0026logo=Jest\u0026logoColor=white)\n![NodeJS](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Pjiwm_devops\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Pjiwm_devops)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/m/pjiwm/devops)\n![workflow](https://github.com/Pjiwm/devops/actions/workflows/build.yml/badge.svg)\n![workflow](https://github.com/Pjiwm/devops/actions/workflows/jest.yml/badge.svg)\n![workflow](https://github.com/Pjiwm/devops/actions/workflows/code_quality.yml/badge.svg)\n\n\n## List strategy\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/BackLogList_diagram.png)\n\n\n# Diagram of each module:\n\n## Backlog Item\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/BacklogItem_diagram.png)\n\n## Jobs\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/Jobs_diagram.png)\n\n## Observers\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/Observer_diagram.png)\n\n## Person and roles\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/Person_diagram.png)\n#### *T extends Role\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/Roles_diagram.png)\n\n## Sprint backlog\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/BackLogFactory_diagram.png)\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/SprintBacklog_diagram.png)\n\n## Sprint\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/Sprint_diagram.png)\n\n## Threads\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/Thread_diagram.png)\n\n## Package diagram\n![image](https://github.com/Pjiwm/devops/blob/main/docs/uml/package_diagram.png)\n\n# Test coverage:\nFile                      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Lines\n--------------------------|---------|----------|---------|---------|-------------------------------------\nAll files                 |   94.52 |    73.68 |   96.42 |   94.49 |\n src                      |   96.42 |    94.44 |   95.52 |   96.37 |\n  ActivityMap.ts          |     100 |      100 |     100 |     100 |\n  BackLogItem.ts          |     100 |       80 |     100 |     100 | 76\n  Branch.ts               |     100 |      100 |     100 |     100 |\n  Person.ts               |     100 |      100 |     100 |     100 |\n  PersonFactory.ts        |     100 |      100 |     100 |     100 |\n  Pipeline.ts             |   68.75 |      100 |    62.5 |   68.75 | 17,31-32,46-47\n  Repository.ts           |     100 |      100 |     100 |     100 |\n  SprintBackLog.ts        |     100 |      100 |     100 |     100 |\n src/BackLogFactory       |     100 |      100 |     100 |     100 |\n  SprintBackLogFactory.ts |     100 |      100 |     100 |     100 |\n src/BackLogList          |     100 |      100 |     100 |     100 |\n  DoingList.ts            |     100 |      100 |     100 |     100 |\n  DoneList.ts             |     100 |      100 |     100 |     100 |\n  ListStategy.ts          |     100 |      100 |     100 |     100 |\n  ReadyForTestingList.ts  |     100 |      100 |     100 |     100 |\n  TestedList.ts           |     100 |      100 |     100 |     100 |\n  TestingList.ts          |     100 |      100 |     100 |     100 |\n  TodoList.ts             |     100 |      100 |     100 |     100 |\n src/Jobs                 |     100 |      100 |     100 |     100 |\n  BuildJob.ts             |     100 |      100 |     100 |     100 |\n  DeployJob.ts            |     100 |      100 |     100 |     100 |\n  FailingJob.ts           |     100 |      100 |     100 |     100 |\n  InstallPackagesJob.ts   |     100 |      100 |     100 |     100 |\n  Job.ts                  |     100 |      100 |     100 |     100 |\n  TestJob.ts              |     100 |      100 |     100 |     100 |\n src/Observer             |     100 |      100 |     100 |     100 |\n  EmailNotifier.ts        |     100 |      100 |     100 |     100 |\n  LogObserver.ts          |     100 |      100 |     100 |     100 |\n  SlackNotifier.ts        |     100 |      100 |     100 |     100 |\n src/Roles                |     100 |      100 |     100 |     100 |\n  Developer.ts            |     100 |      100 |     100 |     100 |\n  LeadDeveloper.ts        |     100 |      100 |     100 |     100 |\n  ProductOwner.ts         |     100 |      100 |     100 |     100 |\n  Role.ts                 |     100 |      100 |     100 |     100 |\n  ScrumMaster.ts          |     100 |      100 |     100 |     100 |\n  Tester.ts               |     100 |      100 |     100 |     100 |\n src/Sprint               |   89.86 |    59.57 |   94.64 |   89.86 |\n  ActivatedState.ts       |   87.27 |    60.86 |     100 |   87.27 | 42,47,81-82,98-99,108\n  CanceledState.ts        |     100 |      100 |     100 |     100 |\n  ClosedState.ts          |     100 |      100 |     100 |     100 |\n  CreatedState.ts         |     100 |      100 |     100 |     100 |\n  FinishedState.ts        |     100 |      100 |     100 |     100 |\n  Sprint.ts               |   83.72 |    66.66 |   86.36 |   83.72 | 139,165,176-184,208,216,229-237,251\n  SprintBuilder.ts        |   82.97 |       25 |     100 |   82.97 | 83,86-88,91,94,97,101\n  SprintProperties.ts     |     100 |      100 |     100 |     100 |\n  Type.ts                 |     100 |      100 |     100 |     100 |\n src/Thread               |     100 |      100 |     100 |     100 |\n  Message.ts              |     100 |      100 |     100 |     100 |\n  Reply.ts                |     100 |      100 |     100 |     100 |\n  Thread.ts               |     100 |      100 |     100 |     100 |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjiwm%2Fdevops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpjiwm%2Fdevops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjiwm%2Fdevops/lists"}