{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":642126998,"defaultBranch":"master","name":"tool-migration","ownerLogin":"tl-its-umich-edu","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-05-17T22:08:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8292960?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1692894980.0","currentOid":""},"activityList":{"items":[{"before":"cd7db6dc2f8e810925b854a4dbeb8b87fbc56f66","after":"d1d2716fa5ea45b23d8581d1146fab7fd57f52f1","ref":"refs/heads/master","pushedAt":"2023-12-19T15:48:38.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #41 from lsloan/40-term-lookup\n\ndisable term display temporarily (iss. #40)","shortMessageHtmlLink":"Merge pull request #41 from lsloan/40-term-lookup"}},{"before":"d69d77b0504dbbf4f3e5b3d52ed31b2a7e8dc333","after":"cd7db6dc2f8e810925b854a4dbeb8b87fbc56f66","ref":"refs/heads/master","pushedAt":"2023-11-09T19:41:22.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #36 from lsloan/34-run-summary","shortMessageHtmlLink":"Merge pull request #36 from lsloan/34-run-summary"}},{"before":"d067ab8ef11cd40bf8f98248437d698a2c5c4041","after":"d69d77b0504dbbf4f3e5b3d52ed31b2a7e8dc333","ref":"refs/heads/master","pushedAt":"2023-11-06T21:07:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #35 from lsloan/upsteam_master","shortMessageHtmlLink":"Merge pull request #35 from lsloan/upsteam_master"}},{"before":"5e8b68d72a03cd0ec13e55b5b64e96462cb7f6b8","after":"d067ab8ef11cd40bf8f98248437d698a2c5c4041","ref":"refs/heads/master","pushedAt":"2023-10-18T14:24:28.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #33 from lsloan/30-canvas-api-error\n\nHandle error from Canvas API (iss. #30)\r\n\r\nWhen HTTP 422 error occurs, log pertinent info and return `None`. In the calling code, handle `None` responses.","shortMessageHtmlLink":"Merge pull request #33 from lsloan/30-canvas-api-error"}},{"before":"c23d4d5243f63f6485b555d108d9b30089588cfc","after":"5e8b68d72a03cd0ec13e55b5b64e96462cb7f6b8","ref":"refs/heads/master","pushedAt":"2023-10-17T16:23:06.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge PR #32 from lsloan/22-log-format\n\nmore logging improvements (iss. #22)\r\n\r\nLogs now include parameter listing and information about the account and terms. This helps users verify that the parameters they submitted, which contains several object ID numbers, resolve to the correct objects by showing the names of those objects.","shortMessageHtmlLink":"Merge PR #32 from lsloan/22-log-format"}},{"before":"15b8ed405a289aecdab89c04a9cd73fddfe383cc","after":"c23d4d5243f63f6485b555d108d9b30089588cfc","ref":"refs/heads/master","pushedAt":"2023-10-13T14:29:18.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #29 from lsloan/22-log-format\n\nimprove log formatting & include timestamp - This resolves the log formatting part of #22.","shortMessageHtmlLink":"Merge pull request #29 from lsloan/22-log-format"}},{"before":"05f342d2879fc41254478842f7a865965d73e071","after":"15b8ed405a289aecdab89c04a9cd73fddfe383cc","ref":"refs/heads/master","pushedAt":"2023-10-13T03:09:24.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #28 from lsloan/27-PoolTimeout\n\nresolve `PoolTimeout` errors (iss. #27)\r\n\r\nAccording to HTTPX's documentation, in the [Fine tuning the configuration](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) section, a timeout can be set for waiting for a connection from the connection pool. When that timeout is exceeded, a `PoolTimeout` exception is raised. The HTTPX client configuration we had been using didn't specify a pool timeout, so the value was effectively 0.0s. Experimentally, I found that setting any value greater than zero helped our application get connections from the pool without error. HTTPX's documentation said the timeout may also be set to `None`, meaning it will never timeout, it will wait \"forever\". There seems to be minimal risk to that, so I've set that as the timeout value. We may want to look into making this configurable if we continue to use this API class.","shortMessageHtmlLink":"Merge pull request #28 from lsloan/27-PoolTimeout"}},{"before":"f7d5392da0690e5ae3e605853b251acb29bb2cd4","after":"05f342d2879fc41254478842f7a865965d73e071","ref":"refs/heads/master","pushedAt":"2023-10-11T13:47:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"uncomment copy; needed for OpenShift\n\nIt's not needed when running locally with Docker compose because that mounts the local directory as a virtual drive. OpenShift does not do that.","shortMessageHtmlLink":"uncomment copy; needed for OpenShift"}},{"before":"95a828b0d19f974b56fdefc3ef19c36f0f0dec1e","after":"f7d5392da0690e5ae3e605853b251acb29bb2cd4","ref":"refs/heads/master","pushedAt":"2023-10-11T02:38:12.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #26 from lsloan/25-openshift-deploy","shortMessageHtmlLink":"Merge pull request #26 from lsloan/25-openshift-deploy"}},{"before":"d0e901af144f6642b203ff3bc20a281dbe70e121","after":"95a828b0d19f974b56fdefc3ef19c36f0f0dec1e","ref":"refs/heads/master","pushedAt":"2023-09-08T15:48:24.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #23 from lsloan/21-doc-update","shortMessageHtmlLink":"Merge pull request #23 from lsloan/21-doc-update"}},{"before":"970fb4ded8d06bf32d96cd49c7d6cab1c77e8fbd","after":"d0e901af144f6642b203ff3bc20a281dbe70e121","ref":"refs/heads/master","pushedAt":"2023-09-07T14:28:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Update docker-compose.yaml\n\nrename .env to env","shortMessageHtmlLink":"Update docker-compose.yaml"}},{"before":"f406dc4ab3890a78a332f8733dfe143e44119459","after":"970fb4ded8d06bf32d96cd49c7d6cab1c77e8fbd","ref":"refs/heads/master","pushedAt":"2023-09-06T17:52:54.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #19 from lsloan/16-rename-dot-env\n\nchange config file name from `.env` to `env` (iss. #16)","shortMessageHtmlLink":"Merge pull request #19 from lsloan/16-rename-dot-env"}},{"before":"f406dc4ab3890a78a332f8733dfe143e44119459","after":null,"ref":"refs/heads/main","pushedAt":"2023-08-17T13:44:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"}},{"before":null,"after":"f406dc4ab3890a78a332f8733dfe143e44119459","ref":"refs/heads/master","pushedAt":"2023-08-17T13:44:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #18 from lsloan/15-controlled-environment","shortMessageHtmlLink":"Merge pull request #18 from lsloan/15-controlled-environment"}},{"before":"261fecaf2f886f90b11a7f743da5a71cbeb80bf6","after":null,"ref":"refs/heads/course-list-comparison","pushedAt":"2023-08-17T13:44:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"}},{"before":"18d0eb863a8baa80a43f4f11f4cc6348204b8958","after":"f406dc4ab3890a78a332f8733dfe143e44119459","ref":"refs/heads/main","pushedAt":"2023-08-17T13:43:05.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #18 from lsloan/15-controlled-environment","shortMessageHtmlLink":"Merge pull request #18 from lsloan/15-controlled-environment"}},{"before":"3d0f76f3492dd11331bf82e19393f2bb822651d4","after":"18d0eb863a8baa80a43f4f11f4cc6348204b8958","ref":"refs/heads/main","pushedAt":"2023-08-17T13:30:06.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"lsloan","name":"Mr. Lance E Sloan «UMich»","path":"/lsloan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20786?s=80&v=4"},"commit":{"message":"Merge pull request #17 from lsloan/15-controlled-environment\n\nKey commits squashed into this merge…\r\n\r\n* Commit: f3ee45b3b589da3d0c5bb040c5eff3f4804e69aa \r\n Date: Mon Aug 14 23:06:03 2023 -0400\r\n\r\n #15 - basic Docker compose wrapper\r\n\r\n* Commit: 8842448076eef316eab2c2301c72adfbc3f90c1b \r\n Date: Tue Aug 15 10:22:48 2023 -0400\r\n\r\n #15 - documentation\r\n \r\n Jeff indicated better documentation is needed.\r\n\r\n* Commit: 5e1dd733609c2fb9e9351a76844d35814306e96c \r\n Date: Tue Aug 15 12:02:16 2023 -0400\r\n\r\n #15 - changed download link\r\n \r\n Link to the repo's \"Releases\" page so release notes will be seen and the app will be downloaded in a ZIP file that includes the release number.\r\n\r\n* Commit: 2073a4752b7e350481a6e01d37f68f0f2623fec1 \r\n Date: Thu Aug 17 09:25:55 2023 -0400\r\n\r\n #15 - replace future comments c̅ hidden file ones","shortMessageHtmlLink":"Merge pull request #17 from lsloan/15-controlled-environment"}},{"before":"ec73308f00b0869736782297bb36ec04a9453ed0","after":"3d0f76f3492dd11331bf82e19393f2bb822651d4","ref":"refs/heads/main","pushedAt":"2023-07-14T20:03:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Use `trio` and `async` for API calls, make tab updates concurrently (#3) (#12)\n\n* Add first draft of async conversion\r\n\r\n* Add connection limit using httpx; fix asyncio/trio issues\r\n\r\n* Remove log messages\r\n\r\n* Create course log message wrap function\r\n\r\n* Add missing trio requirement\r\n\r\n* Add tqdm progress bar for course nav updating","shortMessageHtmlLink":"Use trio and async for API calls, make tab updates concurrently (#3…"}},{"before":"ec73308f00b0869736782297bb36ec04a9453ed0","after":"261fecaf2f886f90b11a7f743da5a71cbeb80bf6","ref":"refs/heads/course-list-comparison","pushedAt":"2023-07-13T21:12:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Add course list comparison script; add test cases for fetching coureses from API and warehouse and creating CSVs","shortMessageHtmlLink":"Add course list comparison script; add test cases for fetching coures…"}},{"before":null,"after":"ec73308f00b0869736782297bb36ec04a9453ed0","ref":"refs/heads/course-list-comparison","pushedAt":"2023-07-13T21:12:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Tweak replacement logic to meeting requirements, add reproducible tests (#8, #10) (#11)\n\n* Add first draft of reworked logic for replacement\r\n\r\n* Return tuple from replace_tool_tab; add reproducible tests for each possible state permutation\r\n\r\n* Reuse course; remove old term ID usage, add placeholder value since it is not used\r\n\r\n* Downgrade skipping logs to DEBUG","shortMessageHtmlLink":"Tweak replacement logic to meeting requirements, add reproducible tes…"}},{"before":"9de417a8bca76dfec2854a2ef4a5dfac757fc065","after":"ec73308f00b0869736782297bb36ec04a9453ed0","ref":"refs/heads/main","pushedAt":"2023-07-13T20:58:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Tweak replacement logic to meeting requirements, add reproducible tests (#8, #10) (#11)\n\n* Add first draft of reworked logic for replacement\r\n\r\n* Return tuple from replace_tool_tab; add reproducible tests for each possible state permutation\r\n\r\n* Reuse course; remove old term ID usage, add placeholder value since it is not used\r\n\r\n* Downgrade skipping logs to DEBUG","shortMessageHtmlLink":"Tweak replacement logic to meeting requirements, add reproducible tes…"}},{"before":"3094ffddcfca903c7bfa2725c522712da1b56381","after":"9de417a8bca76dfec2854a2ef4a5dfac757fc065","ref":"refs/heads/main","pushedAt":"2023-07-07T17:02:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Add `WarehouseAccountManager` class, `time_execution` decorator (#2, #5) (#9)\n\n* Start building WarehouseAccountManager using DB class; update .env.sample, requirements\r\n\r\n* Make WarehouseAccountManager use API for getting subaccounts, getting available tools; update tests; create factory; use WarehouseAccountManager conditionally\r\n\r\n* Use composition to reuse tool retrieval method; add time_execution decorator and test\r\n\r\n* Add time_execution to main\r\n\r\n* Add log message on no warehouse path\r\n\r\n* Remove unused course_dicts accumulation\r\n\r\n* Move log message on course list out of manager methods to main","shortMessageHtmlLink":"Add WarehouseAccountManager class, time_execution decorator (#2, #5…"}},{"before":"b25bf01524706d1dbf10e4bf7250545e413a26f1","after":"3094ffddcfca903c7bfa2725c522712da1b56381","ref":"refs/heads/main","pushedAt":"2023-07-05T17:19:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Improve `API` class, add retry with `tenacity` (#4) (#7)\n\n* Change bail_after to limit; add APITestCase; use env var account_id in tests\r\n\r\n* Improve limiting logic for get_courses_in_terms; handle case where limit > number of results\r\n\r\n* Move CourseManager tests to proper test case\r\n\r\n* Refactor API to incorporate retrying with tenacity; add tests for API.get\r\n\r\n* Simplify API.put and API.get; use in manager classes; add one more test case; clean up limit\r\n\r\n* Handle edge cases in chunk_integer\r\n\r\n* Use separate test account ID for integration tests; tweak test name\r\n\r\n* Change instance variable to test_account_id\r\n\r\n* Add comment\r\n\r\n* Make minor improvements to naming, logic; extract 4 as global\r\n\r\n* Remove extra spaces in dictionaries; add explanatory comment","shortMessageHtmlLink":"Improve API class, add retry with tenacity (#4) (#7)"}},{"before":"d6cf7b99b5bd14006d9c3f9909717feccbedc40b","after":"b25bf01524706d1dbf10e4bf7250545e413a26f1","ref":"refs/heads/main","pushedAt":"2023-06-07T12:36:14.864Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Collect courses from multiple terms (#1) (#6)\n\n* Add support for multiple terms; add check_untyped_defs\r\n\r\n* Fix a couple minor syntax things\r\n\r\n* Reorder results assignment for clarity\r\n\r\n* Improve test cases\r\n\r\n* Add newline","shortMessageHtmlLink":"Collect courses from multiple terms (#1) (#6)"}},{"before":"55e60e1bacdecbf765e4176e8dc0d7f8d0148614","after":"d6cf7b99b5bd14006d9c3f9909717feccbedc40b","ref":"refs/heads/main","pushedAt":"2023-05-24T21:49:59.268Z","pushType":"push","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Refactor CourseManager; fix .env processing; modify course count logging","shortMessageHtmlLink":"Refactor CourseManager; fix .env processing; modify course count logging"}},{"before":"e8443168ded2b617b80bf9cda7e1fabfc3097478","after":"55e60e1bacdecbf765e4176e8dc0d7f8d0148614","ref":"refs/heads/main","pushedAt":"2023-05-19T01:33:44.146Z","pushType":"push","commitsCount":1,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Add main; refactor as necessary; add tests; add mypy.ini; update README and .env.sample","shortMessageHtmlLink":"Add main; refactor as necessary; add tests; add mypy.ini; update READ…"}},{"before":null,"after":"e8443168ded2b617b80bf9cda7e1fabfc3097478","ref":"refs/heads/main","pushedAt":"2023-05-17T22:11:43.413Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ssciolla","name":"Sam Sciolla","path":"/ssciolla","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35741256?s=80&v=4"},"commit":{"message":"Add barebones documentation in README","shortMessageHtmlLink":"Add barebones documentation in README"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADzfRs1gA","startCursor":null,"endCursor":null}},"title":"Activity · tl-its-umich-edu/tool-migration"}