github-issue-tower-defence-management 1.137.1 → 1.138.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.
- package/CHANGELOG.md +14 -0
- package/bin/adapter/entry-points/cli/index.js +2 -1
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +2 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/repositories/ProcTakeOwnershipSpawnRepository.js +15 -0
- package/bin/adapter/repositories/ProcTakeOwnershipSpawnRepository.js.map +1 -1
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +20 -1
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +7 -1
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.ts +2 -0
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +2 -0
- package/src/adapter/entry-points/handlers/tokenStatusWriter.test.ts +7 -4
- package/src/adapter/repositories/ProcTakeOwnershipSpawnRepository.test.ts +101 -0
- package/src/adapter/repositories/ProcTakeOwnershipSpawnRepository.ts +16 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +304 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +30 -1
- package/src/domain/usecases/StartPreparationUseCase.test.ts +54 -0
- package/src/domain/usecases/StartPreparationUseCase.ts +9 -0
- package/src/domain/usecases/adapter-interfaces/TakeOwnershipSpawnRepository.ts +1 -0
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/repositories/ProcTakeOwnershipSpawnRepository.d.ts +1 -0
- package/types/adapter/repositories/ProcTakeOwnershipSpawnRepository.d.ts.map +1 -1
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +1 -0
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts +3 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/TakeOwnershipSpawnRepository.d.ts +1 -0
- package/types/domain/usecases/adapter-interfaces/TakeOwnershipSpawnRepository.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":";;;AAMA,+DAGoC;AAEpC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAC/C,MAAM,kCAAkC,GAAG,GAAG,CAAC;AAClC,QAAA,+BAA+B,GAAG,iBAAiB,CAAC;AAWjE,MAAa,uBAAuB;IAClC,YACmB,iBAAsD,EACtD,eAUhB,EACgB,kBAAsC,EACtC,0BAAsD,EACtD,4BAA0D;QAd1D,sBAAiB,GAAjB,iBAAiB,CAAqC;QACtD,oBAAe,GAAf,eAAe,CAU/B;QACgB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,iCAA4B,GAA5B,4BAA4B,CAA8B;QAGrE,4BAAuB,GAAG,CAAC,SAAwB,EAAU,EAAE;YACrE,MAAM,UAAU,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,kBAAkB,CAAC;YAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,gBAAgB,CAAC;YACzD,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEM,qBAAgB,GAAG,CACzB,KAAuB,EACvB,eAAuB,EACd,EAAE,CAAC,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;QAEhD,+BAA0B,GAAG,CACnC,KAAuB,EACvB,eAAuB,EACd,EAAE;YACX,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACrD,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC;QACnD,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAC5B,KAAuB,EACvB,gBAA+B,EAC/B,iBAAgC,EACjB,EAAE;YACjB,MAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,mBAAmB,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,MAAM,CACtE,CAAC,SAAS,EAAuB,EAAE,CACjC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,CACzC,CAAC;YACF,KAAK,MAAM,kBAAkB,IAAI,mBAAmB,EAAE,CAAC;gBACrD,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;gBACzE,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;gBACrE,IAAI,mBAAmB,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;oBACvE,OAAO,kBAAkB,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAClC,KAAuB,EACvB,eAAuB,EACvB,eAAuB,EACf,EAAE;YACV,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC;YAC7C,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC,QAAQ,GAAG,eAAe,CAAC;YAC5C,CAAC;YACD,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAClC,CAAC,CAAC;QAEM,6CAAwC,GAAG,CACjD,CAAmB,EACnB,gBAAwB,EACxB,CAAmB,EACnB,gBAAwB,EACxB,eAAuB,EACf,EAAE;YACV,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CACvD,CAAC,EACD,gBAAgB,EAChB,eAAe,CAChB,CAAC;YACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CACvD,CAAC,EACD,gBAAgB,EAChB,eAAe,CAChB,CAAC;YACF,IAAI,kBAAkB,KAAK,kBAAkB,EAAE,CAAC;gBAC9C,OAAO,kBAAkB,GAAG,kBAAkB,CAAC;YACjD,CAAC;YACD,OAAO,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,mBAAmB,CAAC;QACvD,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAC/B,WAAmB,EACnB,sBAA8B,EACtB,EAAE;YACV,IAAI,WAAW,GAAG,sBAAsB,EAAE,CAAC;gBACzC,OAAO,uBAAuB,CAAC;YACjC,CAAC;YACD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC;QAEF,4BAAuB,GAAG,CACxB,mBAA2B,EAC3B,mBAA2B,EACnB,EAAE;YACV,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAC/C,mBAAmB,EACnB,kCAAkC,CACnC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAC/C,mBAAmB,EACnB,kCAAkC,CACnC,CAAC;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAC7B,WAA+B,EAC/B,8BAAsC,EACtC,gBAA+B,EAC/B,iBAAgC,EAChC,aAAqB,EAUrB,EAAE;YACF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC1C,MAAM,cAAc,GAAG,WAAW;iBAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;iBACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;iBAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;iBACjE,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,mBAAmB,GAAG,GAAG,GAAG,8BAA8B,CACnE;iBACA,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CACpC,KAAK,EACL,gBAAgB,EAChB,iBAAiB,CAClB,CAAC;gBACF,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,IAAI,CAAC,wCAAwC,CAC3C,CAAC,CAAC,KAAK,EACP,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,EACrC,CAAC,CAAC,KAAK,EACP,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,EACrC,eAAe,CAChB,CACF,CAAC;YAEJ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;YAC/D,CAAC;YAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,uBAAuB,CACjC,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,mBAAmB,CAC1B;gBACD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CACvD,KAAK,EACL,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EACnC,eAAe,CAChB;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;oBACjC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;wBACpB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;QAClE,CAAC,CAAC;QAEF,uBAAkB,GAAG,CACnB,WAA+B,EAC/B,8BAAsC,EACtC,SAAwB,EACF,EAAE;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC1C,MAAM,cAAc,GAAG,WAAW;iBAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;iBACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;iBAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;iBACjE,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,CAAC,CACpE;iBACA,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,mBAAmB,GAAG,GAAG,GAAG,8BAA8B,CACnE;iBACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,IAAI,CAAC,wCAAwC,CAC3C,CAAC,EACD,eAAe,EACf,CAAC,EACD,eAAe,EACf,eAAe,CAChB,CACF,CAAC;YACJ,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAyB,WAAW;iBAC/C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACf,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;gBACtB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,gBAAgB;gBAChC,iBAAiB,EACf,CAAC,KAAK,CAAC,OAAO;oBACd,CAAC,KAAK,CAAC,gBAAgB;oBACvB,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC;oBAC9C,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,CAAC;oBACxD,KAAK,CAAC,mBAAmB,GAAG,GAAG,IAAI,8BAA8B;gBACnE,gBAAgB,EACd,CAAC,KAAK,CAAC,OAAO;oBACd,CAAC,KAAK,CAAC,gBAAgB;oBACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC;aAChD,CAAC,CAAC,CAAC;YACN,MAAM,eAAe,GAAyB,cAAc,CAAC,GAAG,CAC9D,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;gBACtB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,KAAK;gBACxB,gBAAgB,EAAE,KAAK;aACxB,CAAC,CACH,CAAC;YACF,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,QAAG,GAAG,KAAK,EAAE,MAaZ,EAA2D,EAAE;YAC5D,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,0BAA0B,CAAC,uBAAuB,EAAE,CAAC;YAClE,IAAI,cAAc,GAAoB,IAAI,CAAC;YAC3C,IAAI,YAAY,GAAkB,IAAI,CAAC;YACvC,IAAI,wBAAwB,GAKvB,EAAE,CAAC;YACR,IAAI,mBAAmB,GAA2B,EAAE,CAAC;YACrD,MAAM,aAAa,GACjB,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CACrB,WAAW,EACX,MAAM,CAAC,8BAA8B,EACrC,MAAM,CAAC,mBAAmB,CAC3B;gBACH,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,2BAA2B,GAC/B,MAAM,CAAC,2BAA2B,IAAI,uBAAuB,CAAC;YAChE,IAAI,gCAAgC,GAAG,2BAA2B,CAAC;YACnE,MAAM,oBAAoB,GACxB,MAAM,CAAC,oBAAoB,IAAI,uCAA+B,CAAC;YACjE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,EACJ,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,WAAW,EACzB,gBAAgB,EAAE,6BAA6B,GAChD,GAAG,IAAI,CAAC,oBAAoB,CAC3B,WAAW,EACX,MAAM,CAAC,8BAA8B,EACrC,MAAM,CAAC,mBAAmB,EAC1B,oBAAoB,EACpB,2BAA2B,CAC5B,CAAC;gBACF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,IAAI,CACV,OAAO,WAAW,CAAC,MAAM,4KAA4K,MAAM,CAAC,8BAA8B,oCAAoC,CAC/Q,CAAC;oBACF,OAAO,EAAE,aAAa,EAAE,CAAC;gBAC3B,CAAC;gBACD,MAAM,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,CAAC;gBACzD,mBAAmB;oBACjB,MAAM,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAC;gBACjE,cAAc,GAAG,cAAc,CAAC;gBAChC,wBAAwB,GAAG,6BAA6B,CAAC;gBACzD,gCAAgC,GAAG,WAAW,CAAC;gBAC/C,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC;YAChE,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzE,MAAM,cAAc,GAClB,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAExD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CACjE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CACpC,CAAC;YACF,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wCAAuB,CAC1C,CAAC;YACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CACX,8BAA8B,wCAAuB,yBAAyB,CAC/E,CAAC;gBACF,OAAO,EAAE,aAAa,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,EAAE,CACzD,CAAC;YACF,MAAM,uBAAuB,GAAG,eAAe;iBAC5C,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,MAAM,KAAK,+CAA8B,IAAI,CAAC,KAAK,CAAC,QAAQ,CACrE;iBACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,oCAAoC,GAAG,oBAAoB;iBAC9D,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,MAAM,KAAK,+CAA8B;gBAC/C,CAAC,KAAK,CAAC,QAAQ;gBACf,KAAK,CAAC,KAAK,KAAK,IAAI,CACvB;iBACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,oCAAoC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,IAAI,CACV,8FAA8F,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChJ,CAAC;YACJ,CAAC;YACD,MAAM,4BAA4B,GAAG,eAAe,CAAC,MAAM,CACzD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,wCAAuB,CACpD,CAAC,MAAM,CAAC;YACT,IAAI,mCAAmC,GAAG,4BAA4B,CAAC;YACvE,IAAI,qBAAqB,GAAG,CAAC,CAAC;YAC9B,MAAM,uBAAuB,GAA2B,EAAE,CAAC;YAC3D,MAAM,eAAe,GAAG;gBACtB,iBAAiB,EAAE,CAAC;gBACpB,oBAAoB,EAAE,CAAC;gBACvB,wBAAwB,EAAE,CAAC;gBAC3B,gBAAgB,EAAE,CAAC;gBACnB,oBAAoB,EAAE,CAAC;aACxB,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,IAAI,CACzB,GAAG,CAAC,WAAW,EAAE,EACjB,GAAG,CAAC,QAAQ,EAAE,EACd,GAAG,CAAC,OAAO,EAAE,CACd,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,IAAI,CAC5B,UAAU,CAAC,WAAW,EAAE,EACxB,UAAU,CAAC,QAAQ,EAAE,EACrB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CACzB,CAAC;YAEF,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,uBAAuB,CAAC,MAAM;gBAClC,mCAAmC,GAAG,gCAAgC,EACtE,CAAC,EAAE,EACH,CAAC;gBACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvC,eAAe,CAAC,iBAAiB,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,GAAG,2BAA2B,CAAC,CAAC;oBAC/D,SAAS;gBACX,CAAC;gBACD,IACE,KAAK,CAAC,cAAc,KAAK,IAAI;oBAC7B,KAAK,CAAC,cAAc,IAAI,aAAa,EACrC,CAAC;oBACD,eAAe,CAAC,oBAAoB,EAAE,CAAC;oBACvC,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;oBACxE,eAAe,CAAC,wBAAwB,EAAE,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,IACE,MAAM,CAAC,mBAAmB,KAAK,IAAI;oBACnC,MAAM,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;oBACvC,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAClD,CAAC;oBACD,eAAe,CAAC,gBAAgB,EAAE,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9C,eAAe,CAAC,oBAAoB,EAAE,CAAC;oBACvC,SAAS;gBACX,CAAC;gBACD,MAAM,oBAAoB,GACxB,MAAM,CAAC,oBAAoB,KAAK,IAAI;oBAClC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAClC,MAAM,CAAC,oBAAoB,KAAK,IAAI;wBAClC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAC7C,CAAC,CAAC,KAAK,CACV;oBACH,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,KAAK,GACT,KAAK,CAAC,MAAM;qBACT,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxD,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;qBAC1B,IAAI,EAAE;oBACT,oBAAoB;oBACpB,KAAK,CAAC,MAAM;yBACT,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;wBACvD,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;yBACzB,IAAI,EAAE;oBACT,MAAM,CAAC,mBAAmB;oBAC1B,MAAM,CAAC,gBAAgB,CAAC;gBAC1B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM;qBAChC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxD,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;qBAC1B,IAAI,EAAE,CAAC;gBACV,IACE,CAAC,cAAc;oBACf,CAAC,MAAM,CAAC,mBAAmB;oBAC3B,cAAc,KAAK,IAAI,EACvB,CAAC;oBACD,OAAO,CAAC,KAAK,CACX,qCAAqC,KAAK,CAAC,GAAG,6DAA6D,CAC5G,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,UAAkB,CAAC;gBACvB,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACpE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;wBAChB,OAAO,CAAC,IAAI,CACV,wBAAwB,KAAK,CAAC,GAAG,gCAAgC,CAClE,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,GAAG,+BAA+B,CAAC,CAAC;wBACtE,SAAS;oBACX,CAAC;oBACD,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAC9D,KAAK,CAAC,GAAG,CACV,CAAC;oBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CACxD,CAAC;wBACF,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBACjC,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACxC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;4BACvC,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;4BAC7D,IAAI,WAAW,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gCACpC,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAChD,WAAW,CAAC,GAAG,EACf,WAAW,CAAC,UAAU,CACvB,CAAC;4BACJ,CAAC;4BACD,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAC3C,WAAW,CAAC,GAAG,EACf,oFAAoF,KAAK,CAAC,GAAG,iCAAiC,WAAW,CAAC,GAAG,GAAG,CACjJ,CAAC;wBACJ,CAAC;wBACD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClE,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAC3C,KAAK,CAAC,GAAG,EACT,GAAG,YAAY,CAAC,MAAM,qGAAqG,aAAa,iBAAiB,WAAW,CAAC,GAAG,EAAE,CAC3K,CAAC;wBACF,IAAI,WAAW,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;4BACpC,OAAO,CAAC,IAAI,CACV,kBAAkB,KAAK,CAAC,GAAG,qDAAqD,CACjF,CAAC;4BACF,SAAS;wBACX,CAAC;wBACD,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;oBACtC,CAAC;yBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACnC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;4BACtC,OAAO,CAAC,IAAI,CACV,kBAAkB,KAAK,CAAC,GAAG,gDAAgD,CAC5E,CAAC;4BACF,SAAS;wBACX,CAAC;wBACD,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnC,OAAO,CAAC,KAAK,CACX,kBAAkB,KAAK,CAAC,GAAG,iDAAiD,UAAU,EAAE,CACzF,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CACrC,OAAO,EACP,KAAK,EACL,uBAAuB,CAAC,EAAE,CAC3B,CAAC;gBACF,KAAK,CAAC,MAAM,GAAG,wCAAuB,CAAC;gBAEvC,IAAI,QAA4C,CAAC;gBACjD,IAAI,eAAe,GAAkB,IAAI,CAAC;gBAC1C,IAAI,cAAc,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBACrD,MAAM,mCAAmC,GAAG,wBAAwB;yBACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACX,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,SAAS,EACP,CAAC,CAAC,KAAK;4BACP,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BACnC,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACzC,yBAAyB,EAAE,CAAC,CAAC,yBAAyB;qBACvD,CAAC,CAAC;yBACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;yBAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACb,IAAI,CAAC,CAAC,yBAAyB,KAAK,CAAC,CAAC,yBAAyB,EAAE,CAAC;4BAChE,OAAO,CAAC,CAAC,yBAAyB,GAAG,CAAC,CAAC,yBAAyB,CAAC;wBACnE,CAAC;wBACD,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;oBACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACR,IAAI,mCAAmC,KAAK,SAAS,EAAE,CAAC;wBACtD,MAAM;oBACR,CAAC;oBACD,MAAM,QAAQ,GAAG,mCAAmC,CAAC,KAAK,CAAC;oBAC3D,eAAe,GAAG,mCAAmC,CAAC,KAAK,CAAC;oBAC5D,uBAAuB,CAAC,QAAQ,CAAC;wBAC/B,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/C,QAAQ,GAAG;wBACT,uBAAuB,EAAE,QAAQ;wBACjC,kBAAkB,EAAE,YAAY;qBACjC,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,GACT,cAAc,IAAI,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC;gBAClE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,qCAAqC,KAAK,CAAC,GAAG,6DAA6D,CAC5G,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAa;oBACvB,KAAK,CAAC,GAAG;oBACT,KAAK;oBACL,KAAK;oBACL,kBAAkB;oBAClB,MAAM,CAAC,cAAc;oBACrB,UAAU;oBACV,UAAU;iBACX,CAAC;gBACF,IACE,MAAM,CAAC,mBAAmB,KAAK,IAAI;oBACnC,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EACrC,CAAC;oBACD,MAAM,SAAS,GACb,MAAM,CAAC,mBAAmB,CACxB,qBAAqB,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAC1D,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACtC,IAAI,EACJ,MAAM,EACN,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;gBACF,qBAAqB,EAAE,CAAC;gBACxB,mCAAmC,EAAE,CAAC;YACxC,CAAC;YACD,OAAO,CAAC,GAAG,CACT,yCAAyC,MAAM,CAAC,UAAU,uBAAuB,eAAe,CAAC,iBAAiB,0BAA0B,eAAe,CAAC,oBAAoB,8BAA8B,eAAe,CAAC,wBAAwB,sBAAsB,eAAe,CAAC,gBAAgB,0BAA0B,eAAe,CAAC,oBAAoB,EAAE,CAC7W,CAAC;YACF,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,CAAC,CAAC;IA1lBC,CAAC;CA2lBL;AA5mBD,0DA4mBC"}
|
package/package.json
CHANGED
|
@@ -30,6 +30,7 @@ import { SystemDateRepository } from '../../repositories/SystemDateRepository';
|
|
|
30
30
|
import { BaseGitHubRepository } from '../../repositories/BaseGitHubRepository';
|
|
31
31
|
import { NodeLocalCommandRunner } from '../../repositories/NodeLocalCommandRunner';
|
|
32
32
|
import { NodeTmuxSessionRepository } from '../../repositories/NodeTmuxSessionRepository';
|
|
33
|
+
import { ProcTakeOwnershipSpawnRepository } from '../../repositories/ProcTakeOwnershipSpawnRepository';
|
|
33
34
|
import { GitHubIssueCommentRepository } from '../../repositories/GitHubIssueCommentRepository';
|
|
34
35
|
import { FetchWebhookRepository } from '../../repositories/FetchWebhookRepository';
|
|
35
36
|
import { RevertOrphanedPreparationUseCase } from '../../../domain/usecases/RevertOrphanedPreparationUseCase';
|
|
@@ -381,6 +382,7 @@ program
|
|
|
381
382
|
issueRepository,
|
|
382
383
|
localCommandRunner,
|
|
383
384
|
claudeTokenUsageRepository,
|
|
385
|
+
new ProcTakeOwnershipSpawnRepository(),
|
|
384
386
|
);
|
|
385
387
|
|
|
386
388
|
const rawAllowedIssueAuthors = config.allowedIssueAuthors;
|
|
@@ -47,6 +47,7 @@ import { AssignNoAssigneeIssueToManagerUseCase } from '../../../domain/usecases/
|
|
|
47
47
|
import { UpdateIssueStatusByLabelUseCase } from '../../../domain/usecases/UpdateIssueStatusByLabelUseCase';
|
|
48
48
|
import { StartPreparationUseCase } from '../../../domain/usecases/StartPreparationUseCase';
|
|
49
49
|
import { NodeLocalCommandRunner } from '../../repositories/NodeLocalCommandRunner';
|
|
50
|
+
import { ProcTakeOwnershipSpawnRepository } from '../../repositories/ProcTakeOwnershipSpawnRepository';
|
|
50
51
|
import { ProxyClaudeTokenUsageRepository } from '../../repositories/ProxyClaudeTokenUsageRepository';
|
|
51
52
|
import { ProxyRateLimitCacheRepository } from '../../repositories/ProxyRateLimitCacheRepository';
|
|
52
53
|
import { UpdateRateLimitCacheUseCase } from '../../../domain/usecases/UpdateRateLimitCacheUseCase';
|
|
@@ -368,6 +369,7 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
368
369
|
issueRepository,
|
|
369
370
|
nodeLocalCommandRunner,
|
|
370
371
|
claudeTokenUsageRepository,
|
|
372
|
+
new ProcTakeOwnershipSpawnRepository(),
|
|
371
373
|
);
|
|
372
374
|
const proxyRateLimitCacheRepository = new ProxyRateLimitCacheRepository(
|
|
373
375
|
mergedInput.claudeCodeOauthTokenListJsonPath ?? null,
|
|
@@ -119,7 +119,10 @@ describe('writeTokenStatus', () => {
|
|
|
119
119
|
interactiveSessionRepository: {
|
|
120
120
|
listInteractiveSessions: () => interactiveSessions,
|
|
121
121
|
},
|
|
122
|
-
spawnRepository: {
|
|
122
|
+
spawnRepository: {
|
|
123
|
+
listSpawns: () => spawns,
|
|
124
|
+
listRunningIssueUrls: () => [],
|
|
125
|
+
},
|
|
123
126
|
});
|
|
124
127
|
|
|
125
128
|
const written = readJson(path.join(dir, 'token-status.json'));
|
|
@@ -169,7 +172,7 @@ describe('writeTokenStatus', () => {
|
|
|
169
172
|
interactiveSessionRepository: {
|
|
170
173
|
listInteractiveSessions: () => interactiveSessions,
|
|
171
174
|
},
|
|
172
|
-
spawnRepository: { listSpawns: () => [] },
|
|
175
|
+
spawnRepository: { listSpawns: () => [], listRunningIssueUrls: () => [] },
|
|
173
176
|
};
|
|
174
177
|
|
|
175
178
|
writeTokenStatus({
|
|
@@ -236,7 +239,7 @@ describe('writeTokenStatus', () => {
|
|
|
236
239
|
issues: [],
|
|
237
240
|
readSnapshot: () => null,
|
|
238
241
|
interactiveSessionRepository: { listInteractiveSessions: () => [] },
|
|
239
|
-
spawnRepository: { listSpawns: () => [] },
|
|
242
|
+
spawnRepository: { listSpawns: () => [], listRunningIssueUrls: () => [] },
|
|
240
243
|
});
|
|
241
244
|
expect(fs.existsSync(path.join(dir, 'token-status.json'))).toBe(false);
|
|
242
245
|
});
|
|
@@ -248,7 +251,7 @@ describe('writeTokenStatus', () => {
|
|
|
248
251
|
issues: [],
|
|
249
252
|
readSnapshot: () => null,
|
|
250
253
|
interactiveSessionRepository: { listInteractiveSessions: () => [] },
|
|
251
|
-
spawnRepository: { listSpawns: () => [] },
|
|
254
|
+
spawnRepository: { listSpawns: () => [], listRunningIssueUrls: () => [] },
|
|
252
255
|
});
|
|
253
256
|
expect(fs.existsSync(path.join(dir, 'token-status.json'))).toBe(false);
|
|
254
257
|
});
|
|
@@ -127,4 +127,105 @@ describe('ProcTakeOwnershipSpawnRepository', () => {
|
|
|
127
127
|
|
|
128
128
|
expect(repository.listSpawns()).toEqual([]);
|
|
129
129
|
});
|
|
130
|
+
|
|
131
|
+
describe('listRunningIssueUrls', () => {
|
|
132
|
+
it('extracts issue URL from a bash-c style Take ownership spawn', () => {
|
|
133
|
+
writeProcess({
|
|
134
|
+
pid: 401,
|
|
135
|
+
cmdline: argv(
|
|
136
|
+
'bash',
|
|
137
|
+
'-c',
|
|
138
|
+
`claude-agent -p "Take ownership of ${issueUrl}" | tee /home/user/logs-aw/20260626_120000_abc.log`,
|
|
139
|
+
),
|
|
140
|
+
environ: { CLAUDE_CODE_OAUTH_TOKEN: 'token-a' },
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const repository = new ProcTakeOwnershipSpawnRepository(procDirectory);
|
|
144
|
+
|
|
145
|
+
expect(repository.listRunningIssueUrls()).toEqual([issueUrl]);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it('extracts issue URL from a null-separated claude-agent spawn', () => {
|
|
149
|
+
writeProcess({
|
|
150
|
+
pid: 402,
|
|
151
|
+
cmdline: argv(
|
|
152
|
+
'timeout',
|
|
153
|
+
'--kill-after=60s',
|
|
154
|
+
'3h',
|
|
155
|
+
'claude-agent',
|
|
156
|
+
'--agent',
|
|
157
|
+
'impl',
|
|
158
|
+
'-p',
|
|
159
|
+
`Take ownership of ${issueUrl} and finish it`,
|
|
160
|
+
'--model',
|
|
161
|
+
'claude-sonnet-4-6',
|
|
162
|
+
),
|
|
163
|
+
environ: { CLAUDE_CODE_OAUTH_TOKEN: 'token-b' },
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
const repository = new ProcTakeOwnershipSpawnRepository(procDirectory);
|
|
167
|
+
|
|
168
|
+
expect(repository.listRunningIssueUrls()).toEqual([issueUrl]);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
it('returns empty list when no Take ownership process is running', () => {
|
|
172
|
+
writeProcess({
|
|
173
|
+
pid: 403,
|
|
174
|
+
cmdline: argv('claude', '--name', issueUrl),
|
|
175
|
+
environ: { CLAUDE_CODE_OAUTH_TOKEN: 'token-c' },
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
const repository = new ProcTakeOwnershipSpawnRepository(procDirectory);
|
|
179
|
+
|
|
180
|
+
expect(repository.listRunningIssueUrls()).toEqual([]);
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
it('returns URLs from all matching processes', () => {
|
|
184
|
+
const issueUrl2 = 'https://github.com/HiromiShikata/example/issues/2';
|
|
185
|
+
writeProcess({
|
|
186
|
+
pid: 404,
|
|
187
|
+
cmdline: argv(
|
|
188
|
+
'timeout',
|
|
189
|
+
'--kill-after=60s',
|
|
190
|
+
'3h',
|
|
191
|
+
'claude-agent',
|
|
192
|
+
'--agent',
|
|
193
|
+
'impl',
|
|
194
|
+
'-p',
|
|
195
|
+
`Take ownership of ${issueUrl} and finish it`,
|
|
196
|
+
'--model',
|
|
197
|
+
'claude-sonnet-4-6',
|
|
198
|
+
),
|
|
199
|
+
environ: { CLAUDE_CODE_OAUTH_TOKEN: 'token-d' },
|
|
200
|
+
});
|
|
201
|
+
writeProcess({
|
|
202
|
+
pid: 405,
|
|
203
|
+
cmdline: argv(
|
|
204
|
+
'timeout',
|
|
205
|
+
'--kill-after=60s',
|
|
206
|
+
'3h',
|
|
207
|
+
'claude-agent',
|
|
208
|
+
'--agent',
|
|
209
|
+
'impl',
|
|
210
|
+
'-p',
|
|
211
|
+
`Take ownership of ${issueUrl2} and finish it`,
|
|
212
|
+
'--model',
|
|
213
|
+
'claude-sonnet-4-6',
|
|
214
|
+
),
|
|
215
|
+
environ: { CLAUDE_CODE_OAUTH_TOKEN: 'token-e' },
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
const repository = new ProcTakeOwnershipSpawnRepository(procDirectory);
|
|
219
|
+
|
|
220
|
+
expect(repository.listRunningIssueUrls()).toEqual([issueUrl, issueUrl2]);
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
it('returns empty list when the proc directory does not exist', () => {
|
|
224
|
+
const repository = new ProcTakeOwnershipSpawnRepository(
|
|
225
|
+
path.join(procDirectory, 'missing'),
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
expect(repository.listRunningIssueUrls()).toEqual([]);
|
|
229
|
+
});
|
|
230
|
+
});
|
|
130
231
|
});
|
|
@@ -9,6 +9,7 @@ const DEFAULT_PROC_DIRECTORY = '/proc';
|
|
|
9
9
|
const OAUTH_TOKEN_ENVIRON_KEY = 'CLAUDE_CODE_OAUTH_TOKEN';
|
|
10
10
|
const TAKE_OWNERSHIP_MARKER = 'Take ownership';
|
|
11
11
|
const LOG_PATH_PATTERN = /\/logs-aw\/[^\0"]+\.log/;
|
|
12
|
+
const ISSUE_URL_PATTERN = /Take ownership of (https:\/\/github\.com\/[^ \0"]+)/;
|
|
12
13
|
|
|
13
14
|
const parseCommandLineArguments = (cmdline: string): string[] =>
|
|
14
15
|
cmdline.split('\0').filter((argument) => argument.length > 0);
|
|
@@ -37,6 +38,21 @@ export class ProcTakeOwnershipSpawnRepository implements TakeOwnershipSpawnRepos
|
|
|
37
38
|
return spawns;
|
|
38
39
|
};
|
|
39
40
|
|
|
41
|
+
listRunningIssueUrls = (): string[] => {
|
|
42
|
+
const urls: string[] = [];
|
|
43
|
+
for (const pidDirectory of this.listProcessIdDirectories()) {
|
|
44
|
+
const rawCmdline = this.readRawCmdline(pidDirectory);
|
|
45
|
+
if (rawCmdline === null) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const match = rawCmdline.match(ISSUE_URL_PATTERN);
|
|
49
|
+
if (match !== null) {
|
|
50
|
+
urls.push(match[1]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return urls;
|
|
54
|
+
};
|
|
55
|
+
|
|
40
56
|
private listProcessIdDirectories = (): string[] => {
|
|
41
57
|
let entries: string[];
|
|
42
58
|
try {
|
|
@@ -3070,6 +3070,310 @@ describe('ApiV3CheerioRestIssueRepository', () => {
|
|
|
3070
3070
|
});
|
|
3071
3071
|
});
|
|
3072
3072
|
|
|
3073
|
+
describe('findRelatedOpenPRs', () => {
|
|
3074
|
+
afterEach(() => {
|
|
3075
|
+
jest.restoreAllMocks();
|
|
3076
|
+
});
|
|
3077
|
+
|
|
3078
|
+
const buildTimelineResponse = (nodes: unknown[]) => ({
|
|
3079
|
+
data: {
|
|
3080
|
+
repository: {
|
|
3081
|
+
issue: {
|
|
3082
|
+
timelineItems: {
|
|
3083
|
+
pageInfo: { endCursor: null, hasNextPage: false },
|
|
3084
|
+
nodes,
|
|
3085
|
+
},
|
|
3086
|
+
},
|
|
3087
|
+
},
|
|
3088
|
+
},
|
|
3089
|
+
});
|
|
3090
|
+
|
|
3091
|
+
const buildCrossReferencedEventNode = (overrides: {
|
|
3092
|
+
willCloseTarget: boolean;
|
|
3093
|
+
prUrl: string;
|
|
3094
|
+
prState: string;
|
|
3095
|
+
prBody?: string | null;
|
|
3096
|
+
headRefName?: string;
|
|
3097
|
+
baseRefName?: string;
|
|
3098
|
+
}) => ({
|
|
3099
|
+
__typename: 'CrossReferencedEvent',
|
|
3100
|
+
willCloseTarget: overrides.willCloseTarget,
|
|
3101
|
+
source: {
|
|
3102
|
+
__typename: 'PullRequest',
|
|
3103
|
+
url: overrides.prUrl,
|
|
3104
|
+
number: 427,
|
|
3105
|
+
body: overrides.prBody ?? null,
|
|
3106
|
+
state: overrides.prState,
|
|
3107
|
+
createdAt: '2024-01-01T00:00:00Z',
|
|
3108
|
+
isDraft: false,
|
|
3109
|
+
mergeable: 'MERGEABLE',
|
|
3110
|
+
headRefName: overrides.headRefName ?? 'feature-branch',
|
|
3111
|
+
baseRefName: overrides.baseRefName ?? 'main',
|
|
3112
|
+
baseRepository: {
|
|
3113
|
+
branchProtectionRules: { nodes: [] },
|
|
3114
|
+
defaultBranchRef: { name: 'main' },
|
|
3115
|
+
rulesets: { nodes: [] },
|
|
3116
|
+
},
|
|
3117
|
+
commits: {
|
|
3118
|
+
nodes: [
|
|
3119
|
+
{
|
|
3120
|
+
commit: {
|
|
3121
|
+
statusCheckRollup: {
|
|
3122
|
+
contexts: { nodes: [] },
|
|
3123
|
+
},
|
|
3124
|
+
},
|
|
3125
|
+
},
|
|
3126
|
+
],
|
|
3127
|
+
},
|
|
3128
|
+
reviewThreads: { nodes: [] },
|
|
3129
|
+
baseRef: { name: 'main' },
|
|
3130
|
+
},
|
|
3131
|
+
});
|
|
3132
|
+
|
|
3133
|
+
it('returns an empty array when no cross-referenced events exist', async () => {
|
|
3134
|
+
jest.spyOn(global, 'fetch').mockResolvedValueOnce(
|
|
3135
|
+
new Response(JSON.stringify(buildTimelineResponse([])), {
|
|
3136
|
+
status: 200,
|
|
3137
|
+
headers: { 'Content-Type': 'application/json' },
|
|
3138
|
+
}),
|
|
3139
|
+
);
|
|
3140
|
+
|
|
3141
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3142
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3143
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3144
|
+
);
|
|
3145
|
+
|
|
3146
|
+
expect(result).toEqual([]);
|
|
3147
|
+
});
|
|
3148
|
+
|
|
3149
|
+
it('returns the PR when willCloseTarget is true (same-repo PR, standard behavior)', async () => {
|
|
3150
|
+
mockFetchRoutes({
|
|
3151
|
+
timeline: () =>
|
|
3152
|
+
buildTimelineResponse([
|
|
3153
|
+
buildCrossReferencedEventNode({
|
|
3154
|
+
willCloseTarget: true,
|
|
3155
|
+
prUrl: 'https://github.com/HiromiShikata/secretary/pull/100',
|
|
3156
|
+
prState: 'OPEN',
|
|
3157
|
+
}),
|
|
3158
|
+
]),
|
|
3159
|
+
slimPullRequest: () =>
|
|
3160
|
+
buildSlimPullRequestResponse({
|
|
3161
|
+
url: 'https://github.com/HiromiShikata/secretary/pull/100',
|
|
3162
|
+
}),
|
|
3163
|
+
});
|
|
3164
|
+
|
|
3165
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3166
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3167
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3168
|
+
);
|
|
3169
|
+
|
|
3170
|
+
expect(result).toHaveLength(1);
|
|
3171
|
+
expect(result[0].url).toBe(
|
|
3172
|
+
'https://github.com/HiromiShikata/secretary/pull/100',
|
|
3173
|
+
);
|
|
3174
|
+
});
|
|
3175
|
+
|
|
3176
|
+
it('excludes the PR when willCloseTarget is false and the PR body does not contain a closing keyword referencing the issue URL', async () => {
|
|
3177
|
+
jest.spyOn(global, 'fetch').mockResolvedValueOnce(
|
|
3178
|
+
new Response(
|
|
3179
|
+
JSON.stringify(
|
|
3180
|
+
buildTimelineResponse([
|
|
3181
|
+
buildCrossReferencedEventNode({
|
|
3182
|
+
willCloseTarget: false,
|
|
3183
|
+
prUrl:
|
|
3184
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3185
|
+
prState: 'OPEN',
|
|
3186
|
+
prBody: 'This PR fixes something unrelated.',
|
|
3187
|
+
}),
|
|
3188
|
+
]),
|
|
3189
|
+
),
|
|
3190
|
+
{ status: 200, headers: { 'Content-Type': 'application/json' } },
|
|
3191
|
+
),
|
|
3192
|
+
);
|
|
3193
|
+
|
|
3194
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3195
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3196
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3197
|
+
);
|
|
3198
|
+
|
|
3199
|
+
expect(result).toEqual([]);
|
|
3200
|
+
});
|
|
3201
|
+
|
|
3202
|
+
it('includes the cross-repo PR when willCloseTarget is false but the PR body contains "Closes {issueUrl}"', async () => {
|
|
3203
|
+
mockFetchRoutes({
|
|
3204
|
+
timeline: () =>
|
|
3205
|
+
buildTimelineResponse([
|
|
3206
|
+
buildCrossReferencedEventNode({
|
|
3207
|
+
willCloseTarget: false,
|
|
3208
|
+
prUrl:
|
|
3209
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3210
|
+
prState: 'OPEN',
|
|
3211
|
+
prBody:
|
|
3212
|
+
'Closes https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3213
|
+
}),
|
|
3214
|
+
]),
|
|
3215
|
+
slimPullRequest: () =>
|
|
3216
|
+
buildSlimPullRequestResponse({
|
|
3217
|
+
url: 'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3218
|
+
}),
|
|
3219
|
+
});
|
|
3220
|
+
|
|
3221
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3222
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3223
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3224
|
+
);
|
|
3225
|
+
|
|
3226
|
+
expect(result).toHaveLength(1);
|
|
3227
|
+
expect(result[0].url).toBe(
|
|
3228
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3229
|
+
);
|
|
3230
|
+
});
|
|
3231
|
+
|
|
3232
|
+
it('includes the cross-repo PR when willCloseTarget is false but the PR body contains "Fixes {issueUrl}" (case-insensitive)', async () => {
|
|
3233
|
+
mockFetchRoutes({
|
|
3234
|
+
timeline: () =>
|
|
3235
|
+
buildTimelineResponse([
|
|
3236
|
+
buildCrossReferencedEventNode({
|
|
3237
|
+
willCloseTarget: false,
|
|
3238
|
+
prUrl:
|
|
3239
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3240
|
+
prState: 'OPEN',
|
|
3241
|
+
prBody:
|
|
3242
|
+
'FIXES https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3243
|
+
}),
|
|
3244
|
+
]),
|
|
3245
|
+
slimPullRequest: () =>
|
|
3246
|
+
buildSlimPullRequestResponse({
|
|
3247
|
+
url: 'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3248
|
+
}),
|
|
3249
|
+
});
|
|
3250
|
+
|
|
3251
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3252
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3253
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3254
|
+
);
|
|
3255
|
+
|
|
3256
|
+
expect(result).toHaveLength(1);
|
|
3257
|
+
expect(result[0].url).toBe(
|
|
3258
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3259
|
+
);
|
|
3260
|
+
});
|
|
3261
|
+
|
|
3262
|
+
it('includes the cross-repo PR when willCloseTarget is false but the PR body contains "Resolves {issueUrl}"', async () => {
|
|
3263
|
+
mockFetchRoutes({
|
|
3264
|
+
timeline: () =>
|
|
3265
|
+
buildTimelineResponse([
|
|
3266
|
+
buildCrossReferencedEventNode({
|
|
3267
|
+
willCloseTarget: false,
|
|
3268
|
+
prUrl:
|
|
3269
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3270
|
+
prState: 'OPEN',
|
|
3271
|
+
prBody:
|
|
3272
|
+
'Resolves https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3273
|
+
}),
|
|
3274
|
+
]),
|
|
3275
|
+
slimPullRequest: () =>
|
|
3276
|
+
buildSlimPullRequestResponse({
|
|
3277
|
+
url: 'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3278
|
+
}),
|
|
3279
|
+
});
|
|
3280
|
+
|
|
3281
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3282
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3283
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3284
|
+
);
|
|
3285
|
+
|
|
3286
|
+
expect(result).toHaveLength(1);
|
|
3287
|
+
expect(result[0].url).toBe(
|
|
3288
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3289
|
+
);
|
|
3290
|
+
});
|
|
3291
|
+
|
|
3292
|
+
it('excludes the PR when willCloseTarget is false, the body has a closing keyword, but the URL references a different issue', async () => {
|
|
3293
|
+
jest.spyOn(global, 'fetch').mockResolvedValueOnce(
|
|
3294
|
+
new Response(
|
|
3295
|
+
JSON.stringify(
|
|
3296
|
+
buildTimelineResponse([
|
|
3297
|
+
buildCrossReferencedEventNode({
|
|
3298
|
+
willCloseTarget: false,
|
|
3299
|
+
prUrl:
|
|
3300
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3301
|
+
prState: 'OPEN',
|
|
3302
|
+
prBody:
|
|
3303
|
+
'Closes https://github.com/HiromiShikata/secretary/issues/9999',
|
|
3304
|
+
}),
|
|
3305
|
+
]),
|
|
3306
|
+
),
|
|
3307
|
+
{ status: 200, headers: { 'Content-Type': 'application/json' } },
|
|
3308
|
+
),
|
|
3309
|
+
);
|
|
3310
|
+
|
|
3311
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3312
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3313
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3314
|
+
);
|
|
3315
|
+
|
|
3316
|
+
expect(result).toEqual([]);
|
|
3317
|
+
});
|
|
3318
|
+
|
|
3319
|
+
it('excludes the cross-repo PR when it is not in OPEN state even if the body contains a closing keyword', async () => {
|
|
3320
|
+
jest.spyOn(global, 'fetch').mockResolvedValueOnce(
|
|
3321
|
+
new Response(
|
|
3322
|
+
JSON.stringify(
|
|
3323
|
+
buildTimelineResponse([
|
|
3324
|
+
buildCrossReferencedEventNode({
|
|
3325
|
+
willCloseTarget: false,
|
|
3326
|
+
prUrl:
|
|
3327
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3328
|
+
prState: 'MERGED',
|
|
3329
|
+
prBody:
|
|
3330
|
+
'Closes https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3331
|
+
}),
|
|
3332
|
+
]),
|
|
3333
|
+
),
|
|
3334
|
+
{ status: 200, headers: { 'Content-Type': 'application/json' } },
|
|
3335
|
+
),
|
|
3336
|
+
);
|
|
3337
|
+
|
|
3338
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3339
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3340
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3341
|
+
);
|
|
3342
|
+
|
|
3343
|
+
expect(result).toEqual([]);
|
|
3344
|
+
});
|
|
3345
|
+
|
|
3346
|
+
it('includes the cross-repo PR when willCloseTarget is false but the PR body contains "closes" followed by the issue URL with a trailing slash', async () => {
|
|
3347
|
+
mockFetchRoutes({
|
|
3348
|
+
timeline: () =>
|
|
3349
|
+
buildTimelineResponse([
|
|
3350
|
+
buildCrossReferencedEventNode({
|
|
3351
|
+
willCloseTarget: false,
|
|
3352
|
+
prUrl:
|
|
3353
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3354
|
+
prState: 'OPEN',
|
|
3355
|
+
prBody:
|
|
3356
|
+
'closes https://github.com/HiromiShikata/secretary/issues/2380/',
|
|
3357
|
+
}),
|
|
3358
|
+
]),
|
|
3359
|
+
slimPullRequest: () =>
|
|
3360
|
+
buildSlimPullRequestResponse({
|
|
3361
|
+
url: 'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3362
|
+
}),
|
|
3363
|
+
});
|
|
3364
|
+
|
|
3365
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
3366
|
+
const result = await repository.findRelatedOpenPRs(
|
|
3367
|
+
'https://github.com/HiromiShikata/secretary/issues/2380',
|
|
3368
|
+
);
|
|
3369
|
+
|
|
3370
|
+
expect(result).toHaveLength(1);
|
|
3371
|
+
expect(result[0].url).toBe(
|
|
3372
|
+
'https://github.com/HiromiShikata/repositories-management/pull/427',
|
|
3373
|
+
);
|
|
3374
|
+
});
|
|
3375
|
+
});
|
|
3376
|
+
|
|
3073
3377
|
const createApiV3CheerioRestIssueRepository = () => {
|
|
3074
3378
|
const apiV3IssueRepository = mock<ApiV3IssueRepository>();
|
|
3075
3379
|
const restIssueRepository = mock<RestIssueRepository>();
|
|
@@ -52,6 +52,7 @@ type TimelineItem = {
|
|
|
52
52
|
__typename: string;
|
|
53
53
|
url?: string;
|
|
54
54
|
number?: number;
|
|
55
|
+
body?: string | null;
|
|
55
56
|
state?: string;
|
|
56
57
|
createdAt?: string;
|
|
57
58
|
isDraft?: boolean;
|
|
@@ -1014,6 +1015,26 @@ export class ApiV3CheerioRestIssueRepository
|
|
|
1014
1015
|
};
|
|
1015
1016
|
};
|
|
1016
1017
|
|
|
1018
|
+
private prBodyContainsCrossRepoClosingKeyword = (
|
|
1019
|
+
prBody: string | null,
|
|
1020
|
+
issueUrl: string,
|
|
1021
|
+
): boolean => {
|
|
1022
|
+
if (!prBody) return false;
|
|
1023
|
+
const closingKeywords =
|
|
1024
|
+
/(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\s+/gi;
|
|
1025
|
+
const normalizedIssueUrl = issueUrl.replace(/\/+$/, '');
|
|
1026
|
+
let match: RegExpExecArray | null;
|
|
1027
|
+
while ((match = closingKeywords.exec(prBody)) !== null) {
|
|
1028
|
+
const afterKeyword = prBody.slice(match.index + match[0].length);
|
|
1029
|
+
const urlMatch = afterKeyword.match(/^https?:\/\/[^\s]+/);
|
|
1030
|
+
if (!urlMatch) continue;
|
|
1031
|
+
const candidateUrl = urlMatch[0].replace(/\/+$/, '');
|
|
1032
|
+
if (candidateUrl.toLowerCase() === normalizedIssueUrl.toLowerCase())
|
|
1033
|
+
return true;
|
|
1034
|
+
}
|
|
1035
|
+
return false;
|
|
1036
|
+
};
|
|
1037
|
+
|
|
1017
1038
|
private readonly requiredCheckNamesCache = new Map<
|
|
1018
1039
|
string,
|
|
1019
1040
|
{ fetchedAtMs: number; names: string[] }
|
|
@@ -1432,6 +1453,7 @@ export class ApiV3CheerioRestIssueRepository
|
|
|
1432
1453
|
... on PullRequest {
|
|
1433
1454
|
url
|
|
1434
1455
|
number
|
|
1456
|
+
body
|
|
1435
1457
|
state
|
|
1436
1458
|
createdAt
|
|
1437
1459
|
isDraft
|
|
@@ -1488,7 +1510,14 @@ export class ApiV3CheerioRestIssueRepository
|
|
|
1488
1510
|
if (item.__typename !== 'CrossReferencedEvent') continue;
|
|
1489
1511
|
if (!item.source || item.source.__typename !== 'PullRequest') continue;
|
|
1490
1512
|
if (item.source.state !== 'OPEN') continue;
|
|
1491
|
-
if (
|
|
1513
|
+
if (
|
|
1514
|
+
!item.willCloseTarget &&
|
|
1515
|
+
!this.prBodyContainsCrossRepoClosingKeyword(
|
|
1516
|
+
item.source.body ?? null,
|
|
1517
|
+
issueUrl,
|
|
1518
|
+
)
|
|
1519
|
+
)
|
|
1520
|
+
continue;
|
|
1492
1521
|
|
|
1493
1522
|
const pr = item.source;
|
|
1494
1523
|
const prUrl = pr.url || '';
|