{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":347002566,"defaultBranch":"main","name":"ios-training","ownerLogin":"yumemi-inc","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-03-12T08:59:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6687975?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716980211.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"af874ed08d1551857ab7a117b794026e0f798756","ref":"refs/heads/feature/separate-type-definitions","pushedAt":"2024-05-29T10:56:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"型定義をファイル毎に分割しました。","shortMessageHtmlLink":"型定義をファイル毎に分割しました。"}},{"before":null,"after":"a6e5f728dc48ddf840083fab3c8f95b0b7d94cfc","ref":"refs/heads/feature/remove-import","pushedAt":"2024-05-29T10:29:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"不必要な import を削除しました。","shortMessageHtmlLink":"不必要な import を削除しました。"}},{"before":"d2554b4d6b4a0443aaaadd215d2138b4376192e4","after":"ffa0e6fe5f6a73a85261f5fe09f1082818748a5c","ref":"refs/heads/feature/fix-decoding-error","pushedAt":"2024-05-23T07:05:23.000Z","pushType":"push","commitsCount":35,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Merge branch 'main' into feature/fix-decoding-error","shortMessageHtmlLink":"Merge branch 'main' into feature/fix-decoding-error"}},{"before":"bf45efcdca3ede06f2d746a2a7a62807e95cea65","after":null,"ref":"refs/heads/feature/edit_camel_case","pushedAt":"2024-05-23T07:03:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"}},{"before":"55bdcfbf592d06796f01a2f5854a61915cdb83e8","after":"13643d854c6bf7fe75c0035e7190c98e0ee40a74","ref":"refs/heads/main","pushedAt":"2024-05-23T07:03:33.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Merge pull request #76 from yumemi-inc/feature/edit_camel_case\n\nAPI Guidelineに準拠(アッパーキャメルケースをロワーキャメルケースに変更)","shortMessageHtmlLink":"Merge pull request #76 from yumemi-inc/feature/edit_camel_case"}},{"before":"3927660c8b8cab28ae59d4fbcdc210fdce8c7196","after":"bf45efcdca3ede06f2d746a2a7a62807e95cea65","ref":"refs/heads/feature/edit_camel_case","pushedAt":"2024-05-23T06:58:33.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Merge branch 'main' into feature/edit_camel_case","shortMessageHtmlLink":"Merge branch 'main' into feature/edit_camel_case"}},{"before":"3060f8ee0da5f5a0116e2843b519de83a6abe3fb","after":null,"ref":"refs/heads/feature/multiline-string-literal-indentation","pushedAt":"2024-05-23T06:41:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"}},{"before":"1e2179712f4c17a3e9e74c476746e4111468ec24","after":"3927660c8b8cab28ae59d4fbcdc210fdce8c7196","ref":"refs/heads/feature/edit_camel_case","pushedAt":"2024-05-23T06:41:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Merge pull request #78 from yumemi-inc/feature/multiline-string-literal-indentation\n\n複数行の文字列リテラルのインデントが周囲と乖離しないようにしました。","shortMessageHtmlLink":"Merge pull request #78 from yumemi-inc/feature/multiline-string-liter…"}},{"before":"95aa9c99d96f67a506c43414f493a75b786b48dc","after":null,"ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-23T06:38:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"}},{"before":"1a58394332ec3d8e32bae5e41c69fba25d30ec53","after":"55bdcfbf592d06796f01a2f5854a61915cdb83e8","ref":"refs/heads/main","pushedAt":"2024-05-23T06:38:57.000Z","pushType":"pr_merge","commitsCount":26,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Merge pull request #72 from yumemi-inc/feature/apply_api_guideline\n\n既存コードをAPI Guidelineに準拠させる","shortMessageHtmlLink":"Merge pull request #72 from yumemi-inc/feature/apply_api_guideline"}},{"before":"9cfb85bcd4faa31d99ef6c0f430c634590ce49c2","after":null,"ref":"refs/heads/feature/controllable_api_error","pushedAt":"2024-05-22T12:09:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"}},{"before":"6d986e1664c003fb01100cb66f990927584efcb6","after":"95aa9c99d96f67a506c43414f493a75b786b48dc","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-22T12:09:47.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Merge pull request #81 from yumemi-inc/feature/controllable_api_error\n\nYumemiWeather API が無作為にエラーを返す頻度をコントロール可能にしました。","shortMessageHtmlLink":"Merge pull request #81 from yumemi-inc/feature/controllable_api_error"}},{"before":"b18a79115b253775e5555d4f7794e8f4c0e8ff71","after":"9cfb85bcd4faa31d99ef6c0f430c634590ce49c2","ref":"refs/heads/feature/controllable_api_error","pushedAt":"2024-05-13T10:18:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"YumemiWeather API が無作為にエラーを返す頻度をコントロール可能にしました。","shortMessageHtmlLink":"YumemiWeather API が無作為にエラーを返す頻度をコントロール可能にしました。"}},{"before":"1cabe8274aba2a60611379becba7ea4534159c08","after":"3060f8ee0da5f5a0116e2843b519de83a6abe3fb","ref":"refs/heads/feature/multiline-string-literal-indentation","pushedAt":"2024-05-13T10:09:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"複数行の文字列リテラルのインデントが周囲と乖離しないようにしました。","shortMessageHtmlLink":"複数行の文字列リテラルのインデントが周囲と乖離しないようにしました。"}},{"before":"feee4401e34b2edad455ef49e932ee9e4aa8b6f5","after":"6d986e1664c003fb01100cb66f990927584efcb6","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-09T13:22:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"YumemiWeather の List 取得用 API で、地域に空を指定すると全地域の予報が取得できる旨をドキュメントコメントに記載しました。擬似 API であることの記述を各 API ではなく YumemiWeather 型のドキュメントコメントに記載しました。それに伴い、単体取得用の API でのドキュメントコメントも調整し、全体に統一感を持たせました。","shortMessageHtmlLink":"YumemiWeather の List 取得用 API で、地域に空を指定すると全地域の予報が取得できる旨をドキュメントコメントに記載し…"}},{"before":"0e7d0d3d821eb3cfecc42d301914a87261ace8b7","after":"1e2179712f4c17a3e9e74c476746e4111468ec24","ref":"refs/heads/feature/edit_camel_case","pushedAt":"2024-05-08T03:48:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"daikiumehara","name":"umehara daiki","path":"/daikiumehara","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/62703773?s=80&v=4"},"commit":{"message":"rawValueにAreaのアッパーキャメルケースを指定","shortMessageHtmlLink":"rawValueにAreaのアッパーキャメルケースを指定"}},{"before":"718cc61d1483bdf97e0f53d00bdbe71debcdeec3","after":"feee4401e34b2edad455ef49e932ee9e4aa8b6f5","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-02T15:32:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"不必要な名前空間の明記を省略しました。","shortMessageHtmlLink":"不必要な名前空間の明記を省略しました。"}},{"before":"3193e2768ae8ef3837a54e7256a9e1b804db7a11","after":"718cc61d1483bdf97e0f53d00bdbe71debcdeec3","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-02T15:20:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"ドキュメントコメントの誤字を修正しました。","shortMessageHtmlLink":"ドキュメントコメントの誤字を修正しました。"}},{"before":"1b182df85742da0dac240bdb4fb967aa20b5480c","after":"d2554b4d6b4a0443aaaadd215d2138b4376192e4","ref":"refs/heads/feature/fix-decoding-error","pushedAt":"2024-05-02T14:03:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Example 内で実装されている Response を正しく復元できない不具合を修正しました。\n\n836c083506849c2c997f2db4bef3eb5d0da972e5 および 785e38f4b3bcc6043efc0e1bce5cd4875bd9fbf7 で YumemiWeather モジュール内の Response の改善が行われたのを機に、Example 内でそれと等しい設計を期待していた Response 型とプロパティー名が食い違い、その影響で Example アプリで新たに「デコードエラー」が発生するようになっていました。","shortMessageHtmlLink":"Example 内で実装されている Response を正しく復元できない不具合を修正しました。"}},{"before":null,"after":"1b182df85742da0dac240bdb4fb967aa20b5480c","ref":"refs/heads/feature/fix-decoding-error","pushedAt":"2024-05-02T14:01:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Example 内で実装されている Response を正しく復元できない不具合を修正しました。\n\n#836c083 で YumemiWeather モジュール内の Response に手を入れられたのを機に、Example 内でそれと等しい設計を期待していた Response 型とプロパティー名が食い違い、その影響で Example アプリで新たに「デコードエラー」が発生するようになっていました。","shortMessageHtmlLink":"Example 内で実装されている Response を正しく復元できない不具合を修正しました。"}},{"before":null,"after":"b18a79115b253775e5555d4f7794e8f4c0e8ff71","ref":"refs/heads/feature/controllable_api_error","pushedAt":"2024-05-02T13:43:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"YumemiWeather API が無作為にエラーを返す頻度をコントロール可能にしました。","shortMessageHtmlLink":"YumemiWeather API が無作為にエラーを返す頻度をコントロール可能にしました。"}},{"before":"121b753658d1b8c80e1b809b8811edcae03c4d83","after":"3193e2768ae8ef3837a54e7256a9e1b804db7a11","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-02T08:38:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"不必要な名前空間指定を削除しました。","shortMessageHtmlLink":"不必要な名前空間指定を削除しました。"}},{"before":"691177484ca71cacd380e7735bd1e535a7a9be9b","after":"121b753658d1b8c80e1b809b8811edcae03c4d83","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-02T07:56:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"標準ライブラリーの作法に基づいて、WeatherCondition をランダムで生成するコードを変更しました。","shortMessageHtmlLink":"標準ライブラリーの作法に基づいて、WeatherCondition をランダムで生成するコードを変更しました。"}},{"before":"4a081dacb3d9422fe6db1758ec1dd3c8bb9590ec","after":"691177484ca71cacd380e7735bd1e535a7a9be9b","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-02T07:47:06.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"乱数生成器が独自定義されていることが想像しやすい名前 ControllableGenerator に変更し、その渡し方を標準ライブラリーに沿った方法に変更しました。\n\n意図した乱数を作り出すために makeRandomResponse に seed を渡す設計になっていましたが、現在の標準ライブラリーでは some RandomNumberGenerator を渡すのが一般的のため、それに合わせました。\n\nまた、seed によって乱数が制御されることは ControllableGenerator 器固有の仕様なため、makeRandomResponse には渡さず、それを ControllableGenerator 自身が制御するようにしました。この際、内部で使われる srand48 関数はグローバルに影響するため、イニシャライザーで呼び出すとほかのインスタンスにも影響します。その性質を考慮して、ControllableGenerator はシングルトンで実装するようにしました。\n\n加えて、seed のリセットも ControllableGenerator の範疇と思われるため、必要な値を受け取って適切にシードをリセットする機能もここに移動しました。\n\nその他として、シングルトンを static var で保持させています。これは乱数生成器を各種 API が inout で受け取る仕様になっているため、そこにそのまま渡せるようにするための措置です。自由に書き換え可能にはなりますが、そもそもインスタンスが1つしか存在せず、そのイニシャライザーはプライベートで保護されているため、予期しないインスタンスの入れ替え操作は起こりません。","shortMessageHtmlLink":"乱数生成器が独自定義されていることが想像しやすい名前 ControllableGenerator に変更し、その渡し方を標準ライブラリーに…"}},{"before":null,"after":"1cabe8274aba2a60611379becba7ea4534159c08","ref":"refs/heads/feature/multiline-string-literal-indentation","pushedAt":"2024-05-02T04:17:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"複数行の文字列リテラルのインデントが周囲と乖離しないようにしました。","shortMessageHtmlLink":"複数行の文字列リテラルのインデントが周囲と乖離しないようにしました。"}},{"before":"0e7d0d3d821eb3cfecc42d301914a87261ace8b7","after":null,"ref":"refs/heads/feature/multiline-string-literal-indentation","pushedAt":"2024-05-02T04:14:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"}},{"before":null,"after":"0e7d0d3d821eb3cfecc42d301914a87261ace8b7","ref":"refs/heads/feature/multiline-string-literal-indentation","pushedAt":"2024-05-02T04:06:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"YumemiWeatherTests では地域名が小文字で始まる名称で与えられていたので、YumemiWeatherListTests と統一感を持たせるために、こちらも大文字から始まる名称を想定するテストコードにしました(実装上、どちらでも失敗しません ≒ 原稿の仕様を維持?)。","shortMessageHtmlLink":"YumemiWeatherTests では地域名が小文字で始まる名称で与えられていたので、YumemiWeatherListTests と…"}},{"before":"f29ec13679161b304d35053933ded11e00f7611f","after":"0e7d0d3d821eb3cfecc42d301914a87261ace8b7","ref":"refs/heads/feature/edit_camel_case","pushedAt":"2024-05-02T03:51:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"YumemiWeatherTests では地域名が小文字で始まる名称で与えられていたので、YumemiWeatherListTests と統一感を持たせるために、こちらも大文字から始まる名称を想定するテストコードにしました(実装上、どちらでも失敗しません ≒ 原稿の仕様を維持?)。","shortMessageHtmlLink":"YumemiWeatherTests では地域名が小文字で始まる名称で与えられていたので、YumemiWeatherListTests と…"}},{"before":"28c98c95204a8d117ba96ef2e9ec056f6f08959a","after":"f29ec13679161b304d35053933ded11e00f7611f","ref":"refs/heads/feature/edit_camel_case","pushedAt":"2024-05-02T03:22:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"入出力データには影響しない改修を行う一環として、テストコードで与えるデータを改修前に戻します。","shortMessageHtmlLink":"入出力データには影響しない改修を行う一環として、テストコードで与えるデータを改修前に戻します。"}},{"before":"b7bf09c2ca7c43546ee5a7374e55be2b54b7c7b3","after":"4a081dacb3d9422fe6db1758ec1dd3c8bb9590ec","ref":"refs/heads/feature/apply_api_guideline","pushedAt":"2024-05-01T14:09:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"es-kumagai","name":"Tomohiro Kumagai","path":"/es-kumagai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2109837?s=80&v=4"},"commit":{"message":"Revert \"edit: rename callbackFetchWeatherList to fetchWeather\"\n\nThis reverts commit 8ba2766b83aea8e21509ae02e8b55b81be7c5751.","shortMessageHtmlLink":"Revert \"edit: rename callbackFetchWeatherList to fetchWeather\""}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVtU33AA","startCursor":null,"endCursor":null}},"title":"Activity · yumemi-inc/ios-training"}