github-issue-tower-defence-management 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/.github/workflows/commit-lint.yml +0 -2
  2. package/.github/workflows/empty-format-test-job.yml +28 -0
  3. package/.github/workflows/test.yml +1 -0
  4. package/CHANGELOG.md +20 -41
  5. package/bin/adapter/entry-points/cli/index.js +0 -0
  6. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +127 -16
  7. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  8. package/bin/adapter/repositories/BaseGitHubRepository.js +3 -2
  9. package/bin/adapter/repositories/BaseGitHubRepository.js.map +1 -1
  10. package/bin/adapter/repositories/GraphqlProjectRepository.js +16 -0
  11. package/bin/adapter/repositories/GraphqlProjectRepository.js.map +1 -1
  12. package/bin/adapter/repositories/LocalStorageRepository.js +6 -0
  13. package/bin/adapter/repositories/LocalStorageRepository.js.map +1 -1
  14. package/bin/adapter/repositories/SystemDateRepository.js +15 -3
  15. package/bin/adapter/repositories/SystemDateRepository.js.map +1 -1
  16. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +61 -9
  17. package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
  18. package/bin/adapter/repositories/issue/CheerioIssueRepository.js +28 -2
  19. package/bin/adapter/repositories/issue/CheerioIssueRepository.js.map +1 -1
  20. package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js +7 -0
  21. package/bin/adapter/repositories/issue/GraphqlProjectItemRepository.js.map +1 -1
  22. package/bin/adapter/repositories/issue/RestIssueRepository.js +1 -0
  23. package/bin/adapter/repositories/issue/RestIssueRepository.js.map +1 -1
  24. package/bin/adapter/repositories/utils.js +1 -6
  25. package/bin/adapter/repositories/utils.js.map +1 -1
  26. package/bin/domain/usecases/AnalyzeProblemByIssueUseCase.js +98 -65
  27. package/bin/domain/usecases/AnalyzeProblemByIssueUseCase.js.map +1 -1
  28. package/bin/domain/usecases/AnalyzeStoriesUseCase.js +108 -0
  29. package/bin/domain/usecases/AnalyzeStoriesUseCase.js.map +1 -0
  30. package/bin/domain/usecases/ClearDependedIssueURLUseCase.js +66 -0
  31. package/bin/domain/usecases/ClearDependedIssueURLUseCase.js.map +1 -0
  32. package/bin/domain/usecases/CreateEstimationIssueUseCase.js +100 -0
  33. package/bin/domain/usecases/CreateEstimationIssueUseCase.js.map +1 -0
  34. package/bin/domain/usecases/HandleScheduledEventUseCase.js +124 -2
  35. package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
  36. package/bin/domain/usecases/utils.js +24 -0
  37. package/bin/domain/usecases/utils.js.map +1 -0
  38. package/package.json +2 -2
  39. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +73 -7
  40. package/src/adapter/repositories/AxiosSlackRepository.test.ts +3 -0
  41. package/src/adapter/repositories/BaseGitHubRepository.test.ts +3 -1
  42. package/src/adapter/repositories/BaseGitHubRepository.ts +3 -1
  43. package/src/adapter/repositories/GraphqlProjectRepository.test.ts +5 -1
  44. package/src/adapter/repositories/GraphqlProjectRepository.ts +25 -0
  45. package/src/adapter/repositories/LocalStorageCacheRepository.test.ts +1 -0
  46. package/src/adapter/repositories/LocalStorageRepository.ts +6 -0
  47. package/src/adapter/repositories/SystemDateRepository.ts +17 -3
  48. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +8 -0
  49. package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +103 -16
  50. package/src/adapter/repositories/issue/ApiV3IssueRepository.test.ts +3 -0
  51. package/src/adapter/repositories/issue/CheerioIssueRepository.test.ts +10 -0
  52. package/src/adapter/repositories/issue/CheerioIssueRepository.ts +37 -1
  53. package/src/adapter/repositories/issue/GraphqlProjectItemRepository.test.ts +7 -1
  54. package/src/adapter/repositories/issue/GraphqlProjectItemRepository.ts +15 -0
  55. package/src/adapter/repositories/issue/InternalGraphqlIssueRepository.test.ts +7 -1
  56. package/src/adapter/repositories/issue/RestIssueRepository.test.ts +3 -0
  57. package/src/adapter/repositories/issue/RestIssueRepository.ts +5 -2
  58. package/src/adapter/repositories/utils.test.ts +16 -1
  59. package/src/adapter/repositories/utils.ts +1 -6
  60. package/src/domain/entities/Issue.ts +4 -0
  61. package/src/domain/entities/Project.ts +15 -4
  62. package/src/domain/usecases/AnalyzeProblemByIssueUseCase.ts +151 -115
  63. package/src/domain/usecases/AnalyzeStoriesUseCase.ts +167 -0
  64. package/src/domain/usecases/ClearDependedIssueURLUseCase.test.ts +840 -0
  65. package/src/domain/usecases/ClearDependedIssueURLUseCase.ts +107 -0
  66. package/src/domain/usecases/CreateEstimationIssueUseCase.ts +157 -0
  67. package/src/domain/usecases/GenerateWorkingTimeReportUseCase.test.ts +8 -0
  68. package/src/domain/usecases/HandleScheduledEventUseCase.ts +171 -2
  69. package/src/domain/usecases/adapter-interfaces/DateRepository.ts +2 -0
  70. package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +8 -1
  71. package/src/domain/usecases/utils.ts +28 -0
  72. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  73. package/types/adapter/repositories/BaseGitHubRepository.d.ts +3 -1
  74. package/types/adapter/repositories/BaseGitHubRepository.d.ts.map +1 -1
  75. package/types/adapter/repositories/GraphqlProjectRepository.d.ts.map +1 -1
  76. package/types/adapter/repositories/LocalStorageRepository.d.ts +1 -0
  77. package/types/adapter/repositories/LocalStorageRepository.d.ts.map +1 -1
  78. package/types/adapter/repositories/SystemDateRepository.d.ts +2 -0
  79. package/types/adapter/repositories/SystemDateRepository.d.ts.map +1 -1
  80. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +14 -5
  81. package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
  82. package/types/adapter/repositories/issue/CheerioIssueRepository.d.ts +7 -1
  83. package/types/adapter/repositories/issue/CheerioIssueRepository.d.ts.map +1 -1
  84. package/types/adapter/repositories/issue/GraphqlProjectItemRepository.d.ts +3 -0
  85. package/types/adapter/repositories/issue/GraphqlProjectItemRepository.d.ts.map +1 -1
  86. package/types/adapter/repositories/issue/RestIssueRepository.d.ts +1 -1
  87. package/types/adapter/repositories/issue/RestIssueRepository.d.ts.map +1 -1
  88. package/types/adapter/repositories/utils.d.ts.map +1 -1
  89. package/types/domain/entities/Issue.d.ts +4 -0
  90. package/types/domain/entities/Issue.d.ts.map +1 -1
  91. package/types/domain/entities/Project.d.ts +15 -4
  92. package/types/domain/entities/Project.d.ts.map +1 -1
  93. package/types/domain/usecases/AnalyzeProblemByIssueUseCase.d.ts +13 -8
  94. package/types/domain/usecases/AnalyzeProblemByIssueUseCase.d.ts.map +1 -1
  95. package/types/domain/usecases/AnalyzeStoriesUseCase.d.ts +29 -0
  96. package/types/domain/usecases/AnalyzeStoriesUseCase.d.ts.map +1 -0
  97. package/types/domain/usecases/ClearDependedIssueURLUseCase.d.ts +13 -0
  98. package/types/domain/usecases/ClearDependedIssueURLUseCase.d.ts.map +1 -0
  99. package/types/domain/usecases/CreateEstimationIssueUseCase.d.ts +33 -0
  100. package/types/domain/usecases/CreateEstimationIssueUseCase.d.ts.map +1 -0
  101. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +26 -2
  102. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
  103. package/types/domain/usecases/adapter-interfaces/DateRepository.d.ts +2 -0
  104. package/types/domain/usecases/adapter-interfaces/DateRepository.d.ts.map +1 -1
  105. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +3 -1
  106. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
  107. package/types/domain/usecases/utils.d.ts +5 -0
  108. package/types/domain/usecases/utils.d.ts.map +1 -0
@@ -44,11 +44,9 @@ jobs:
44
44
  with:
45
45
  exclude-branches: 'release/**, dependabot/**, project-common/**'
46
46
  loose-matching: true
47
-
48
47
  - name: Install commitlint
49
48
  run: |
50
49
  npm install --save-dev @commitlint/{config-conventional,cli}
51
-
52
50
  - name: Lint commits
53
51
  run: |
54
52
  npx commitlint --from=origin/main --to=HEAD --config ./.github/workflows/configs/commitlint.config.js
@@ -0,0 +1,28 @@
1
+ name: Empty format test
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - run: echo "test"
10
+
11
+ format:
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: write
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ token: ${{ secrets.GH_TOKEN }}
19
+ - uses: actions/setup-node@v4
20
+ with:
21
+ node-version: 20
22
+ - run: git pull
23
+ - run: |
24
+ npx prettier --write "**/*.{md,yaml,yml,js}" --trailing-comma all --print-width 80 --single-quote true
25
+ git --no-pager diff
26
+ - uses: stefanzweifel/git-auto-commit-action@v5
27
+ with:
28
+ commit_message: 'style: re-format / npx prettier --write "**/*.{md,yaml,yml,js}"'
@@ -22,6 +22,7 @@ jobs:
22
22
  - name: Build
23
23
  run: npm run build
24
24
 
25
+ - run: mkdir -p tmp && npx -y gh-cookie '${{ secrets.TEST_GH_USER_NAME }}' '${{ secrets.TEST_GH_USER_PASSWORD }}' '${{ secrets.TEST_GH_AUTHENTICATOR_KEY }}' > tmp/github.com.cookies.json
25
26
  - name: Run tests
26
27
  run: npm run test
27
28
  env:
package/CHANGELOG.md CHANGED
@@ -1,49 +1,28 @@
1
- # [1.1.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.0.0...v1.1.0) (2024-12-08)
1
+ # [1.2.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.1.0...v1.2.0) (2025-01-02)
2
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * avoid to use comma for warning to keep csv format ([ab98722](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/ab987220d770101b270c20cb2482b7868a934e01))
7
- * change time to run ClearNextActionHourUseCase ([58c754e](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/58c754ecbf227694aece38746d306598957a252a))
8
- * create sheet if not exists in GoogleSpreadsheetRepository ([eed58d4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/eed58d496556f911cee8308bfe819324a6007dad))
9
- * decrare types ([41cae9d](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/41cae9de84bd13350ae290b38c77fe0573245499))
10
- * failed to get cookie correctly ([2e21889](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/2e2188963edd5a665455f60dad2395338e962b16))
11
- * failed to get ids in GraphqlProjectItemRepository ([ca04065](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/ca04065d2742f713295f30bfba1e5d610d292955))
12
- * failed to get project number correctly in GraphqlProjectRepository ([d888325](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/d8883255efd3234015d5e8cba08987fdf4f3d3d2))
13
- * failed to get status by classic view ([1d9f478](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/1d9f4786372bc945cef2be9dd74e6d725eff655b))
14
- * failed to load data from file ([e02931c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/e02931c18dfb716038e63571a31a894aec426149))
15
- * failed to render label on issue ([dffa281](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/dffa2813966f4046c14b87dff6d69f65813ad5c4))
16
- * failed to save file if parent dir is not exists ([ab590e1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/ab590e1469f9b5012fa916b03702924c93f6de60))
17
- * get cookie from credential ([133416f](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/133416f4743dab56beeab8f9a5226a6c865f56f9))
18
- * hide log from axios ([b6cf9b3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b6cf9b3194168d51465f16b40a8709879b22bd61))
19
- * remove decimals before duration calcuration in issueTimelineUrilts ([4d2654f](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/4d2654fddbc26600449708a4f44c4d4c7fc3b1b1))
20
- * remove octokit to avoid ems error ([cbf30d7](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/cbf30d7549b1fae247d8ab28e334669261e851a2))
21
- * run for every minutes ([b7ae179](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b7ae179e62de563a32bcbc43d316161005267e34))
22
- * save raw working report data to spredsheet at once ([9eb89f9](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/9eb89f9db7b517171779bb46fef0e7b61c176860))
23
- * separate process pr or issue to get timeline ([6641705](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/6641705f8e0478b86a8cc1316152c727fac15ab5))
24
- * set datetime after collecting issues ([dd85d6c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/dd85d6c6d99a8e4bae4387ba9a28375388595366))
25
- * sleep to avoid 429 on slack api ([98aa47c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/98aa47cd5fb1a320421c1dac1e523493adf1a68c))
26
- * updated wrong lastExecutionDate ([c0c900a](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/c0c900a5eaaab5e1e34a9b225c540dcc1ae83d87))
27
- * wait 2sec after created issue ([b4bd107](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b4bd107bb74025ff322ef495cf7fdc6179a5fc63))
28
- * wait 2sec after upload image in AxiusSlackRepository ([06ff9f5](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/06ff9f569246d21e3b07727467066acdf32874da))
29
- * wait 5sec after change story ([721bdc1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/721bdc1f786d83378354aa52fd9e529469147bc4))
30
- * wait 5sec to create announcement issue ([1d6c7b6](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/1d6c7b67bc622aeab06c9561469ad7b8a5f50637))
31
- * wait 5sec to create working time report issue ([664c503](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/664c50310b0a11a2e08ad303ba6c3238efaf1f97))
32
- * wrong updateStory parameter in ApiV3CheerioRestIssueRepository ([46d3f74](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/46d3f7495120e6d40fc9a34a906ad9a844a8a9f5))
6
+ * encodeURI for % and & ([d4f1a2e](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/d4f1a2ea4e67b31b14a10ed866d6ea6aef5f133f))
7
+ * failed to get completion date and dependign issue field ([8314a7c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/8314a7c61e5a549370fa96554be1e1be9d275890))
8
+ * failed to get id when get issue data only 1 ([2bacf46](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/2bacf4677caca918dda7e654d9d944879848611f))
9
+ * failed to normalize field name ([9600dd9](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/9600dd9dd243a459bf123446898a4dee171e3fe1))
10
+ * use red if story color is pink ([64e2dd6](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/64e2dd6a95e00031fe6776456fbc4052128d600e))
33
11
 
34
12
 
35
13
  ### Features
36
14
 
37
- * add raw log to spreadsheet in GenerateWorkingTimeReportUseCase ([8f3bda7](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/8f3bda7585e9e6ab0afa77534eba45faf0029c4b))
38
- * export function interface ([0ec4a28](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/0ec4a28e84215b37c3aa3a2306eab71f9e917153))
39
- * implement task for scheduler ([6415aad](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/6415aad41d754a95f0167a463544b2776ceb55a9))
40
- * report via issue when error happen in GenerateWorkingTimeReportUseCase ([464fd36](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/464fd3604e658b303bf82b93ed22c496d9cf303d))
41
- * show labels in daily report ([f8ec5d3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/f8ec5d3b0ae3b8ef636cbe86864cd5e0e53c67d8))
42
- * use cache if there is for issues ([9a6ec9d](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/9a6ec9dadfdcecbc33e28745889302f949bcef29))
43
- * use clearNextActionHourUseCase and analyzeProblemByIssueUseCase ([9046ed7](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/9046ed7c8235ac4f69f155363a762ac6370747a6))
44
- * use codeblock for total time in working report ([b51f43a](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b51f43a495b0918faa6bc5b6d09c54be8a5ecaf4))
45
-
46
-
47
- ### Performance Improvements
48
-
49
- * get timeline and issue data from 1 request in CheerioIssueRepository ([d61c35c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/d61c35c41505d51387400ac1b15436bd2f0790fd))
15
+ * add formatDateWityDayOfWeek in SystemDatetimeRepository ([18e4d55](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/18e4d559e802be47e54005f6488d6f4f3747a6bc))
16
+ * add new field to issue of dependedIssueUrlSeparatedByComma, completationDate ([bd7c3cc](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/bd7c3cc368c71de7287823baa0c0d0006bd8256e))
17
+ * add remove to LocalStorageRepository ([cb6320e](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/cb6320eab34caeeafd6cf5a661d6784a8bb7a299))
18
+ * add unhandled story to summary ([fa5b622](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/fa5b622b2eafcc70e78a8755bfb909993c87e552))
19
+ * analyze stories at 7:00am ([b91dd0a](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b91dd0afbbcd782a5d19080c17da19d7f356b117))
20
+ * configure creds in yaml ([5d5dcd4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/5d5dcd411f93758e8122f629d14c38215cdbf7da))
21
+ * ignore pr when check in progress ([9aececc](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/9aececc82dfadda71182fcc18e615ef78bf8a696))
22
+ * refreshCookie before collecting data ([85f8189](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/85f8189042b30b1f7393e852e81434a5fb50499b))
23
+ * remove mention from working timeline ([87b6958](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/87b69581811167c4966e9fe6892bc21aa81f8785))
24
+ * retry if project is not set ([12cf0be](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/12cf0bed4a2e394c048d6d6e63a4b900e020e59a))
25
+ * run clearDependedIssueURLUseCase ([b4505fc](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/b4505fcb81cdee4fd9283941e5f27a7425bf64f1))
26
+ * show flowchart ([44b2a02](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/44b2a0259ef72b650e19a894b8170346559c7722))
27
+ * skip issue creation if no vioration ([2267263](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/22672632609b4f06f0b516e98084674439431ac9))
28
+ * use createEstimationIssueUseCase ([2cbb9db](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/2cbb9db3c09a3ca37b4d273c55adb23d04fff40c))
File without changes
@@ -24,13 +24,20 @@ const SetWorkflowManagementIssueToStoryUseCase_1 = require("../../../domain/usec
24
24
  const InternalGraphqlIssueRepository_1 = require("../../repositories/issue/InternalGraphqlIssueRepository");
25
25
  const ClearNextActionHourUseCase_1 = require("../../../domain/usecases/ClearNextActionHourUseCase");
26
26
  const AnalyzeProblemByIssueUseCase_1 = require("../../../domain/usecases/AnalyzeProblemByIssueUseCase");
27
+ const AnalyzeStoriesUseCase_1 = require("../../../domain/usecases/AnalyzeStoriesUseCase");
28
+ const ClearDependedIssueURLUseCase_1 = require("../../../domain/usecases/ClearDependedIssueURLUseCase");
29
+ const CreateEstimationIssueUseCase_1 = require("../../../domain/usecases/CreateEstimationIssueUseCase");
27
30
  class HandleScheduledEventUseCaseHandler {
28
31
  constructor() {
29
32
  this.handle = async (configFilePath) => {
30
33
  const configFileContent = fs_1.default.readFileSync(configFilePath, 'utf8');
31
34
  const input = yaml_1.default.parse(configFileContent);
32
- if (!(() => { const $io0 = input => "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && $io1(input.workingReport)); const $io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && (undefined === input.warningThresholdHour || "number" === typeof input.warningThresholdHour) && "string" === typeof input.spreadsheetUrl && (undefined === input.reportIssueTemplate || "string" === typeof input.reportIssueTemplate) && (Array.isArray(input.reportIssueLabels) && input.reportIssueLabels.every(elem => "string" === typeof elem)); return input => "object" === typeof input && null !== input && $io0(input); })()(input)) {
33
- throw new Error(`Invalid input: ${JSON.stringify(input)}\n\n${JSON.stringify((() => { const $io0 = input => "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && $io1(input.workingReport)); const $io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && (undefined === input.warningThresholdHour || "number" === typeof input.warningThresholdHour) && "string" === typeof input.spreadsheetUrl && (undefined === input.reportIssueTemplate || "string" === typeof input.reportIssueTemplate) && (Array.isArray(input.reportIssueLabels) && input.reportIssueLabels.every(elem => "string" === typeof elem)); const $vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.org || $report(_exceptionable, {
35
+ if (!(() => { const $io0 = input => "string" === typeof input.projectName && "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && $io1(input.workingReport)) && "string" === typeof input.urlOfStoryView && "string" === typeof input.disabledStatus && ("object" === typeof input.credentials && null !== input.credentials && $io2(input.credentials)); const $io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && (undefined === input.warningThresholdHour || "number" === typeof input.warningThresholdHour) && "string" === typeof input.spreadsheetUrl && (undefined === input.reportIssueTemplate || "string" === typeof input.reportIssueTemplate) && (Array.isArray(input.reportIssueLabels) && input.reportIssueLabels.every(elem => "string" === typeof elem)); const $io2 = input => "object" === typeof input.manager && null !== input.manager && $io3(input.manager) && ("object" === typeof input.bot && null !== input.bot && $io7(input.bot)); const $io3 = input => "object" === typeof input.github && null !== input.github && $io4(input.github) && ("object" === typeof input.slack && null !== input.slack && $io5(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && $io6(input.googleServiceAccount)); const $io4 = input => "string" === typeof input.token; const $io5 = input => "string" === typeof input.userToken; const $io6 = input => "string" === typeof input.serviceAccountKey; const $io7 = input => "object" === typeof input.github && null !== input.github && $io8(input.github); const $io8 = input => "string" === typeof input.token && "string" === typeof input.name && "string" === typeof input.password && "string" === typeof input.authenticatorKey; return input => "object" === typeof input && null !== input && $io0(input); })()(input)) {
36
+ throw new Error(`Invalid input: ${JSON.stringify(input)}\n\n${JSON.stringify((() => { const $io0 = input => "string" === typeof input.projectName && "string" === typeof input.org && "string" === typeof input.projectUrl && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && $io1(input.workingReport)) && "string" === typeof input.urlOfStoryView && "string" === typeof input.disabledStatus && ("object" === typeof input.credentials && null !== input.credentials && $io2(input.credentials)); const $io1 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && (undefined === input.warningThresholdHour || "number" === typeof input.warningThresholdHour) && "string" === typeof input.spreadsheetUrl && (undefined === input.reportIssueTemplate || "string" === typeof input.reportIssueTemplate) && (Array.isArray(input.reportIssueLabels) && input.reportIssueLabels.every(elem => "string" === typeof elem)); const $io2 = input => "object" === typeof input.manager && null !== input.manager && $io3(input.manager) && ("object" === typeof input.bot && null !== input.bot && $io7(input.bot)); const $io3 = input => "object" === typeof input.github && null !== input.github && $io4(input.github) && ("object" === typeof input.slack && null !== input.slack && $io5(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && $io6(input.googleServiceAccount)); const $io4 = input => "string" === typeof input.token; const $io5 = input => "string" === typeof input.userToken; const $io6 = input => "string" === typeof input.serviceAccountKey; const $io7 = input => "object" === typeof input.github && null !== input.github && $io8(input.github); const $io8 = input => "string" === typeof input.token && "string" === typeof input.name && "string" === typeof input.password && "string" === typeof input.authenticatorKey; const $vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.projectName || $report(_exceptionable, {
37
+ path: _path + ".projectName",
38
+ expected: "string",
39
+ value: input.projectName
40
+ }), "string" === typeof input.org || $report(_exceptionable, {
34
41
  path: _path + ".org",
35
42
  expected: "string",
36
43
  value: input.org
@@ -44,12 +51,28 @@ class HandleScheduledEventUseCaseHandler {
44
51
  value: input.manager
45
52
  }), ("object" === typeof input.workingReport && null !== input.workingReport || $report(_exceptionable, {
46
53
  path: _path + ".workingReport",
47
- expected: "__type.o1",
54
+ expected: "__type",
48
55
  value: input.workingReport
49
56
  })) && $vo1(input.workingReport, _path + ".workingReport", true && _exceptionable) || $report(_exceptionable, {
50
57
  path: _path + ".workingReport",
51
- expected: "__type.o1",
58
+ expected: "__type",
52
59
  value: input.workingReport
60
+ }), "string" === typeof input.urlOfStoryView || $report(_exceptionable, {
61
+ path: _path + ".urlOfStoryView",
62
+ expected: "string",
63
+ value: input.urlOfStoryView
64
+ }), "string" === typeof input.disabledStatus || $report(_exceptionable, {
65
+ path: _path + ".disabledStatus",
66
+ expected: "string",
67
+ value: input.disabledStatus
68
+ }), ("object" === typeof input.credentials && null !== input.credentials || $report(_exceptionable, {
69
+ path: _path + ".credentials",
70
+ expected: "__type.o1",
71
+ value: input.credentials
72
+ })) && $vo2(input.credentials, _path + ".credentials", true && _exceptionable) || $report(_exceptionable, {
73
+ path: _path + ".credentials",
74
+ expected: "__type.o1",
75
+ value: input.credentials
53
76
  })].every(flag => flag); const $vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.repo || $report(_exceptionable, {
54
77
  path: _path + ".repo",
55
78
  expected: "string",
@@ -90,17 +113,93 @@ class HandleScheduledEventUseCaseHandler {
90
113
  path: _path + ".reportIssueLabels",
91
114
  expected: "Array<string>",
92
115
  value: input.reportIssueLabels
116
+ })].every(flag => flag); const $vo2 = (input, _path, _exceptionable = true) => [("object" === typeof input.manager && null !== input.manager || $report(_exceptionable, {
117
+ path: _path + ".manager",
118
+ expected: "__type.o2",
119
+ value: input.manager
120
+ })) && $vo3(input.manager, _path + ".manager", true && _exceptionable) || $report(_exceptionable, {
121
+ path: _path + ".manager",
122
+ expected: "__type.o2",
123
+ value: input.manager
124
+ }), ("object" === typeof input.bot && null !== input.bot || $report(_exceptionable, {
125
+ path: _path + ".bot",
126
+ expected: "__type.o6",
127
+ value: input.bot
128
+ })) && $vo7(input.bot, _path + ".bot", true && _exceptionable) || $report(_exceptionable, {
129
+ path: _path + ".bot",
130
+ expected: "__type.o6",
131
+ value: input.bot
132
+ })].every(flag => flag); const $vo3 = (input, _path, _exceptionable = true) => [("object" === typeof input.github && null !== input.github || $report(_exceptionable, {
133
+ path: _path + ".github",
134
+ expected: "__type.o3",
135
+ value: input.github
136
+ })) && $vo4(input.github, _path + ".github", true && _exceptionable) || $report(_exceptionable, {
137
+ path: _path + ".github",
138
+ expected: "__type.o3",
139
+ value: input.github
140
+ }), ("object" === typeof input.slack && null !== input.slack || $report(_exceptionable, {
141
+ path: _path + ".slack",
142
+ expected: "__type.o4",
143
+ value: input.slack
144
+ })) && $vo5(input.slack, _path + ".slack", true && _exceptionable) || $report(_exceptionable, {
145
+ path: _path + ".slack",
146
+ expected: "__type.o4",
147
+ value: input.slack
148
+ }), ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount || $report(_exceptionable, {
149
+ path: _path + ".googleServiceAccount",
150
+ expected: "__type.o5",
151
+ value: input.googleServiceAccount
152
+ })) && $vo6(input.googleServiceAccount, _path + ".googleServiceAccount", true && _exceptionable) || $report(_exceptionable, {
153
+ path: _path + ".googleServiceAccount",
154
+ expected: "__type.o5",
155
+ value: input.googleServiceAccount
156
+ })].every(flag => flag); const $vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.token || $report(_exceptionable, {
157
+ path: _path + ".token",
158
+ expected: "string",
159
+ value: input.token
160
+ })].every(flag => flag); const $vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.userToken || $report(_exceptionable, {
161
+ path: _path + ".userToken",
162
+ expected: "string",
163
+ value: input.userToken
164
+ })].every(flag => flag); const $vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.serviceAccountKey || $report(_exceptionable, {
165
+ path: _path + ".serviceAccountKey",
166
+ expected: "string",
167
+ value: input.serviceAccountKey
168
+ })].every(flag => flag); const $vo7 = (input, _path, _exceptionable = true) => [("object" === typeof input.github && null !== input.github || $report(_exceptionable, {
169
+ path: _path + ".github",
170
+ expected: "__type.o7",
171
+ value: input.github
172
+ })) && $vo8(input.github, _path + ".github", true && _exceptionable) || $report(_exceptionable, {
173
+ path: _path + ".github",
174
+ expected: "__type.o7",
175
+ value: input.github
176
+ })].every(flag => flag); const $vo8 = (input, _path, _exceptionable = true) => ["string" === typeof input.token || $report(_exceptionable, {
177
+ path: _path + ".token",
178
+ expected: "string",
179
+ value: input.token
180
+ }), "string" === typeof input.name || $report(_exceptionable, {
181
+ path: _path + ".name",
182
+ expected: "string",
183
+ value: input.name
184
+ }), "string" === typeof input.password || $report(_exceptionable, {
185
+ path: _path + ".password",
186
+ expected: "string",
187
+ value: input.password
188
+ }), "string" === typeof input.authenticatorKey || $report(_exceptionable, {
189
+ path: _path + ".authenticatorKey",
190
+ expected: "string",
191
+ value: input.authenticatorKey
93
192
  })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && $io0(input); let errors; let $report; return input => {
94
193
  if (false === __is(input)) {
95
194
  errors = [];
96
195
  $report = typia_1.default.validate.report(errors);
97
196
  ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || $report(true, {
98
197
  path: _path + "",
99
- expected: "__type",
198
+ expected: "inputType",
100
199
  value: input
101
200
  })) && $vo0(input, _path + "", true) || $report(true, {
102
201
  path: _path + "",
103
- expected: "__type",
202
+ expected: "inputType",
104
203
  value: input
105
204
  }))(input, "$input", true);
106
205
  const success = 0 === errors.length;
@@ -119,21 +218,33 @@ class HandleScheduledEventUseCaseHandler {
119
218
  }
120
219
  const systemDateRepository = new SystemDateRepository_1.SystemDateRepository();
121
220
  const localStorageRepository = new LocalStorageRepository_1.LocalStorageRepository();
122
- const googleSpreadsheetRepository = new GoogleSpreadsheetRepository_1.GoogleSpreadsheetRepository(localStorageRepository);
123
- const localStorageCacheRepository = new LocalStorageCacheRepository_1.LocalStorageCacheRepository(localStorageRepository);
124
- const projectRepository = new GraphqlProjectRepository_1.GraphqlProjectRepository();
125
- const apiV3IssueRepository = new ApiV3IssueRepository_1.ApiV3IssueRepository();
126
- const internalGraphqlIssueRepository = new InternalGraphqlIssueRepository_1.InternalGraphqlIssueRepository();
127
- const cheerioIssueRepository = new CheerioIssueRepository_1.CheerioIssueRepository(internalGraphqlIssueRepository);
128
- const restIssueRepository = new RestIssueRepository_1.RestIssueRepository();
129
- const graphqlProjectItemRepository = new GraphqlProjectItemRepository_1.GraphqlProjectItemRepository();
130
- const issueRepository = new ApiV3CheerioRestIssueRepository_1.ApiV3CheerioRestIssueRepository(apiV3IssueRepository, cheerioIssueRepository, restIssueRepository, graphqlProjectItemRepository, localStorageCacheRepository);
221
+ const googleSpreadsheetRepository = new GoogleSpreadsheetRepository_1.GoogleSpreadsheetRepository(localStorageRepository, input.credentials.manager.googleServiceAccount.serviceAccountKey);
222
+ const cachePath = `./tmp/cache/${input.projectName}`;
223
+ const localStorageCacheRepository = new LocalStorageCacheRepository_1.LocalStorageCacheRepository(localStorageRepository, cachePath);
224
+ const githubRepositoryParams = [
225
+ localStorageRepository,
226
+ `${cachePath}/github.com.cookies.json`,
227
+ input.credentials.bot.github.token,
228
+ input.credentials.bot.github.name,
229
+ input.credentials.bot.github.password,
230
+ input.credentials.bot.github.authenticatorKey,
231
+ ];
232
+ const projectRepository = new GraphqlProjectRepository_1.GraphqlProjectRepository(...githubRepositoryParams);
233
+ const apiV3IssueRepository = new ApiV3IssueRepository_1.ApiV3IssueRepository(...githubRepositoryParams);
234
+ const internalGraphqlIssueRepository = new InternalGraphqlIssueRepository_1.InternalGraphqlIssueRepository(...githubRepositoryParams);
235
+ const cheerioIssueRepository = new CheerioIssueRepository_1.CheerioIssueRepository(internalGraphqlIssueRepository, ...githubRepositoryParams);
236
+ const restIssueRepository = new RestIssueRepository_1.RestIssueRepository(...githubRepositoryParams);
237
+ const graphqlProjectItemRepository = new GraphqlProjectItemRepository_1.GraphqlProjectItemRepository(...githubRepositoryParams);
238
+ const issueRepository = new ApiV3CheerioRestIssueRepository_1.ApiV3CheerioRestIssueRepository(apiV3IssueRepository, cheerioIssueRepository, restIssueRepository, graphqlProjectItemRepository, localStorageCacheRepository, ...githubRepositoryParams);
131
239
  const generateWorkingTimeReportUseCase = new GenerateWorkingTimeReportUseCase_1.GenerateWorkingTimeReportUseCase(issueRepository, googleSpreadsheetRepository, systemDateRepository);
132
240
  const actionAnnouncement = new ActionAnnouncementUseCase_1.ActionAnnouncementUseCase(issueRepository);
133
241
  const setWorkflowManagementIssueToStoryUseCase = new SetWorkflowManagementIssueToStoryUseCase_1.SetWorkflowManagementIssueToStoryUseCase(issueRepository);
134
242
  const clearNextActionHourUseCase = new ClearNextActionHourUseCase_1.ClearNextActionHourUseCase(issueRepository);
135
243
  const analyzeProblemByIssueUseCase = new AnalyzeProblemByIssueUseCase_1.AnalyzeProblemByIssueUseCase(issueRepository, systemDateRepository);
136
- const handleScheduledEventUseCase = new HandleScheduledEventUseCase_1.HandleScheduledEventUseCase(generateWorkingTimeReportUseCase, actionAnnouncement, setWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase, analyzeProblemByIssueUseCase, systemDateRepository, googleSpreadsheetRepository, projectRepository, issueRepository);
244
+ const analyzeStoriesUseCase = new AnalyzeStoriesUseCase_1.AnalyzeStoriesUseCase(issueRepository, systemDateRepository);
245
+ const clearDependedIssueURLUseCase = new ClearDependedIssueURLUseCase_1.ClearDependedIssueURLUseCase(issueRepository);
246
+ const createEstimationIssueUseCase = new CreateEstimationIssueUseCase_1.CreateEstimationIssueUseCase(issueRepository, systemDateRepository);
247
+ const handleScheduledEventUseCase = new HandleScheduledEventUseCase_1.HandleScheduledEventUseCase(generateWorkingTimeReportUseCase, actionAnnouncement, setWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, systemDateRepository, googleSpreadsheetRepository, projectRepository, issueRepository);
137
248
  return await handleScheduledEventUseCase.run(input);
138
249
  };
139
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,kDAA0B;AAC1B,4CAAoB;AACpB,kFAA+E;AAC/E,sFAAmF;AACnF,gGAA6F;AAC7F,0FAAuF;AACvF,wFAAqF;AACrF,4FAAyF;AACzF,sFAAmF;AACnF,wGAAqG;AACrG,8GAA2G;AAC3G,gHAA6G;AAC7G,sGAAmG;AACnG,gGAA6F;AAC7F,kGAA+F;AAC/F,gIAA6H;AAC7H,4GAAyG;AACzG,oGAAiG;AACjG,wGAAqG;AAIrG,MAAa,kCAAkC;IAA/C;QACE,WAAM,GAAG,KAAK,EACZ,cAAsB,EAMrB,EAAE;YACH,MAAM,iBAAiB,GAAG,YAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,KAAK,GAAY,cAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAErD,IAAI,izBAAqB,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAAC,eAAK,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;wBAAY,KAAK,EAAE,EAAE,CACjG,CAAC;YACJ,CAAC;YAED,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;YACxD,MAAM,sBAAsB,GAAG,IAAI,+CAAsB,EAAE,CAAC;YAC5D,MAAM,2BAA2B,GAAG,IAAI,yDAA2B,CACjE,sBAAsB,CACvB,CAAC;YACF,MAAM,2BAA2B,GAAG,IAAI,yDAA2B,CACjE,sBAAsB,CACvB,CAAC;YACF,MAAM,iBAAiB,GAAG,IAAI,mDAAwB,EAAE,CAAC;YACzD,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,EAAE,CAAC;YACxD,MAAM,8BAA8B,GAAG,IAAI,+DAA8B,EAAE,CAAC;YAC5E,MAAM,sBAAsB,GAAG,IAAI,+CAAsB,CACvD,8BAA8B,CAC/B,CAAC;YACF,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,EAAE,CAAC;YACtD,MAAM,4BAA4B,GAAG,IAAI,2DAA4B,EAAE,CAAC;YACxE,MAAM,eAAe,GAAG,IAAI,iEAA+B,CACzD,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,2BAA2B,CAC5B,CAAC;YACF,MAAM,gCAAgC,GACpC,IAAI,mEAAgC,CAClC,eAAe,EACf,2BAA2B,EAC3B,oBAAoB,CACrB,CAAC;YACJ,MAAM,kBAAkB,GAAG,IAAI,qDAAyB,CAAC,eAAe,CAAC,CAAC;YAC1E,MAAM,wCAAwC,GAC5C,IAAI,mFAAwC,CAAC,eAAe,CAAC,CAAC;YAChE,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAC/D,eAAe,CAChB,CAAC;YACF,MAAM,4BAA4B,GAAG,IAAI,2DAA4B,CACnE,eAAe,EACf,oBAAoB,CACrB,CAAC;YACF,MAAM,2BAA2B,GAAG,IAAI,yDAA2B,CACjE,gCAAgC,EAChC,kBAAkB,EAClB,wCAAwC,EACxC,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,CAChB,CAAC;YAEF,OAAO,MAAM,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC;CAAA;AAvED,gFAuEC"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,9 @@ axios_1.default.interceptors.response.use((response) => response, (error) => {
16
16
  throw new Error('Network Error');
17
17
  });
18
18
  class BaseGitHubRepository {
19
- constructor(jsonFilePath = './tmp/github.com.cookies.json', ghToken = process.env.GH_TOKEN || 'dummy', ghUserName = process.env.GH_USER_NAME, ghUserPassword = process.env.GH_USER_PASSWORD, ghAuthenticatorKey = process.env
19
+ constructor(localStorageRepository, jsonFilePath = './tmp/github.com.cookies.json', ghToken = process.env.GH_TOKEN || 'dummy', ghUserName = process.env.GH_USER_NAME, ghUserPassword = process.env.GH_USER_PASSWORD, ghAuthenticatorKey = process.env
20
20
  .GH_AUTHENTICATOR_KEY) {
21
+ this.localStorageRepository = localStorageRepository;
21
22
  this.jsonFilePath = jsonFilePath;
22
23
  this.ghToken = ghToken;
23
24
  this.ghUserName = ghUserName;
@@ -71,7 +72,7 @@ class BaseGitHubRepository {
71
72
  throw new Error('No cookie file and no credentials provided');
72
73
  }
73
74
  const cookie = await (0, gh_cookie_1.getCookieContent)(this.ghUserName, this.ghUserPassword, this.ghAuthenticatorKey);
74
- await fs_1.promises.writeFile(this.jsonFilePath, cookie);
75
+ this.localStorageRepository.write(this.jsonFilePath, cookie);
75
76
  }
76
77
  const data = await fs_1.promises.readFile(this.jsonFilePath, {
77
78
  encoding: 'utf-8',
@@ -1 +1 @@
1
- {"version":3,"file":"BaseGitHubRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/BaseGitHubRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseGitHubRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/BaseGitHubRepository.ts"],"names":[],"mappings":"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"}
@@ -127,6 +127,8 @@ class GraphqlProjectRepository extends BaseGitHubRepository_1.BaseGitHubReposito
127
127
  const story = project.fields.nodes.find((field) => (0, utils_1.normalizeFieldName)(field.name) === 'story');
128
128
  const workflowManagementStory = story?.options.find((option) => (0, utils_1.normalizeFieldName)(option.name).includes('workflowmanagement'));
129
129
  const remainignEstimationMinutes = project.fields.nodes.find((field) => (0, utils_1.normalizeFieldName)(field.name) === 'remainingestimationminutes');
130
+ const dependedIssueUrlSeparatedByComma = project.fields.nodes.find((field) => (0, utils_1.normalizeFieldName)(field.name).startsWith('dependedissueurlseparatedbycomma'));
131
+ const completionDate50PercentConfidence = project.fields.nodes.find((field) => (0, utils_1.normalizeFieldName)(field.name).startsWith('completiondate'));
130
132
  return {
131
133
  id: project.id,
132
134
  name: project.title,
@@ -149,6 +151,8 @@ class GraphqlProjectRepository extends BaseGitHubRepository_1.BaseGitHubReposito
149
151
  stories: story.options.map((option) => ({
150
152
  id: option.id,
151
153
  name: option.name,
154
+ color: option.color,
155
+ description: option.description,
152
156
  })),
153
157
  workflowManagementStory,
154
158
  }
@@ -159,6 +163,18 @@ class GraphqlProjectRepository extends BaseGitHubRepository_1.BaseGitHubReposito
159
163
  fieldId: remainignEstimationMinutes.id,
160
164
  }
161
165
  : null,
166
+ dependedIssueUrlSeparatedByComma: dependedIssueUrlSeparatedByComma
167
+ ? {
168
+ name: dependedIssueUrlSeparatedByComma.name,
169
+ fieldId: dependedIssueUrlSeparatedByComma.id,
170
+ }
171
+ : null,
172
+ completionDate50PercentConfidence: completionDate50PercentConfidence
173
+ ? {
174
+ name: completionDate50PercentConfidence.name,
175
+ fieldId: completionDate50PercentConfidence.id,
176
+ }
177
+ : null,
162
178
  };
163
179
  };
164
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GraphqlProjectRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/GraphqlProjectRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphqlProjectRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/GraphqlProjectRepository.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,12 @@ class LocalStorageRepository {
24
24
  this.mkdir = (dirPath) => {
25
25
  fs_1.default.mkdirSync(dirPath, { recursive: true });
26
26
  };
27
+ this.remove = (path) => {
28
+ fs_1.default.rmSync(path, {
29
+ force: true,
30
+ recursive: true,
31
+ });
32
+ };
27
33
  }
28
34
  }
29
35
  exports.LocalStorageRepository = LocalStorageRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/LocalStorageRepository.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAEpB,MAAa,sBAAsB;IAAnC;QACE,UAAK,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,SAAI,GAAG,CAAC,IAAY,EAAiB,EAAE;YACrC,OAAO,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,cAAS,GAAG,CAAC,OAAe,EAAY,EAAE;YACxC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,YAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,UAAK,GAAG,CAAC,OAAe,EAAE,EAAE;YAC1B,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;CAAA;AAlBD,wDAkBC"}
1
+ {"version":3,"file":"LocalStorageRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/LocalStorageRepository.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAEpB,MAAa,sBAAsB;IAAnC;QACE,UAAK,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpB,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,SAAI,GAAG,CAAC,IAAY,EAAiB,EAAE;YACrC,OAAO,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,cAAS,GAAG,CAAC,OAAe,EAAY,EAAE;YACxC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,YAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,UAAK,GAAG,CAAC,OAAe,EAAE,EAAE;YAC1B,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,WAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YACxB,YAAE,CAAC,MAAM,CAAC,IAAI,EAAE;gBACd,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;CAAA;AAxBD,wDAwBC"}
@@ -10,12 +10,24 @@ class SystemDateRepository {
10
10
  return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`;
11
11
  };
12
12
  this.formatDateTimeWithDayOfWeek = (date) => {
13
+ const dateWithDayOfWeek = this.formatDateWithDayOfWeek(date);
14
+ const hours = String(date.getHours()).padStart(2, '0');
15
+ const minutes = String(date.getMinutes()).padStart(2, '0');
16
+ return `${dateWithDayOfWeek} ${hours}:${minutes}`;
17
+ };
18
+ this.formatDateWithDayOfWeek = (date) => {
13
19
  const dayOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][date.getDay()];
14
20
  const month = String(date.getMonth() + 1).padStart(2, '0');
15
21
  const day = String(date.getDate()).padStart(2, '0');
16
- const hours = String(date.getHours()).padStart(2, '0');
17
- const minutes = String(date.getMinutes()).padStart(2, '0');
18
- return `${date.getFullYear()}/${month}/${day} (${dayOfWeek}) ${hours}:${minutes}`;
22
+ return `${date.getFullYear()}/${month}/${day} (${dayOfWeek})`;
23
+ };
24
+ this.formatStartEnd = (start, end) => {
25
+ const endDate = start.getFullYear() === end.getFullYear() &&
26
+ start.getMonth() === end.getMonth() &&
27
+ start.getDate() === end.getDate()
28
+ ? `${String(end.getHours()).padStart(2, '0')}:${String(end.getMinutes()).padStart(2, '0')}`
29
+ : this.formatDateTimeWithDayOfWeek(end);
30
+ return `${this.formatDateTimeWithDayOfWeek(start)} - ${endDate}`;
19
31
  };
20
32
  }
21
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SystemDateRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/SystemDateRepository.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAAjC;QACE,QAAG,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,yBAAoB,GAAG,CAAC,eAAuB,EAAU,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YACjD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACjF,CAAC,CAAC;QACF,gCAA2B,GAAG,CAAC,IAAU,EAAU,EAAE;YACnD,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACjE,IAAI,CAAC,MAAM,EAAE,CACd,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,KAAK,IAAI,OAAO,EAAE,CAAC;QACpF,CAAC,CAAC;IACJ,CAAC;CAAA;AAjBD,oDAiBC"}
1
+ {"version":3,"file":"SystemDateRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/SystemDateRepository.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAAjC;QACE,QAAG,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,yBAAoB,GAAG,CAAC,eAAuB,EAAU,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;YACjD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACjF,CAAC,CAAC;QACF,gCAA2B,GAAG,CAAC,IAAU,EAAU,EAAE;YACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO,GAAG,iBAAiB,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QACpD,CAAC,CAAC;QAEF,4BAAuB,GAAG,CAAC,IAAU,EAAU,EAAE;YAC/C,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACjE,IAAI,CAAC,MAAM,EAAE,CACd,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,GAAG,KAAK,SAAS,GAAG,CAAC;QAChE,CAAC,CAAC;QACF,mBAAc,GAAG,CAAC,KAAW,EAAE,GAAS,EAAU,EAAE;YAClD,MAAM,OAAO,GACX,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;gBACzC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE;gBACnC,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;gBAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBAC3F,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;YAC5C,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,OAAO,EAAE,CAAC;QACnE,CAAC,CAAC;IACJ,CAAC;CAAA;AA/BD,oDA+BC"}