{"push_id":3107729092,"size":58,"distinct_size":0,"ref":"refs/heads/master","head":"2e1d03c94df6025ce88d4fdcfbb547fd7e22f70c","before":"29f5b745057663966eb9fd27d3c0f0b5c9b86c79","commits":[{"sha":"a8bf503bf392e9d2235c715af497936438ed500d","author":{"name":"Arnav Singh","email":"032853dc82ae88b916a68615683e8efe0e76425d@microsoft.com"},"message":"Enable `clippy_pedantic` and other cleanup. (#515)\n\n- All crates:\r\n\r\n  - Clippy lints:\r\n\r\n    - Use `Self` in function return types.\r\n    - Identifiers in doc comments are now wrapped in code fences.\r\n    - `Option.map().unwrap_or{_else}()` -> `Option.map_or{_else}()`\r\n    - `Result.map().unwrap_or_else()` -> `match Result { }`\r\n    - `for foo in bar.iter()` -> `for foo in &bar`\r\n    - Combine match arms with common expressions.\r\n    - Break up long numeric literals with `_` (`3_221_225_472`)\r\n    - Separate number from type suffix with `_` (`0_usize`)\r\n    - `foo.len() > 0` -> `!foo.is_empty()`\r\n    - Some tests would `match` a `Result` and `panic!`. Replaced with\r\n      `expect{_err}`\r\n    - Constants of `&'static str` type can be written as just `&str` since\r\n      the `'static` lifetime is implicit.\r\n\r\n  - Other cleanup:\r\n\r\n    - Functions that returned `&String`/`&Vec`/`Option<&String>`/`Option<&Vec>`\r\n      now return `&str`/`&[]`/`Option<&str>`/`Option<&[]>`\r\n    - Derive `Copy` on types that can be `Copy`. clippy does not suggest this,\r\n      but it *does* lint for `Copy` types that are `clone()`d or taken\r\n      by reference.\r\n    - `Iterator.nth(0)` -> `Iterator.next()`\r\n\r\n- `docker`:\r\n\r\n  - Rename `Error::ApiError` variant to `Error::Api`\r\n\r\n- `edgelet-docker`\r\n\r\n  - Avoid potential overflow converting u64 to i32.\r\n\r\n- `edgelet-hsm`\r\n\r\n  - `Certificate` and `TpmKey` now impl `Debug`, because some tests that\r\n    matched on `Result`s and panicked now use `Result.expect{_err}()` which\r\n    requires the `Debug` bound.\r\n\r\n- `edgelet-http-workload`\r\n\r\n  - Some `static` `&'static str` changed to `const`\r\n\r\n- `hsm-rs`\r\n\r\n  - Some negative tests stored the result of functions in bindings, even though\r\n    these functions returned `()`. Removed the bindings. Positive tests which\r\n    asserted that the functions returned `()` have not been changed.\r\n  - `0_isize as *mut c_void` -> `std::ptr::null_mut()`\r\n\r\n- `hyper-named-pipe`\r\n\r\n  - Clarified why `extern crate failure` needs to come before\r\n    `extern crate edgelet_utils`.\r\n\r\n- `iotedge`\r\n\r\n  - Some byte arrays using hex literals changed to use byte character literals\r\n    and byte string literals.\r\n  - `test_read` did not assert the result of `Read::read`. Changed to\r\n    `read_exact`\r\n\r\n- `iothubservice`\r\n\r\n  - `AuthMechanism::_type` -> `AuthMechanism::type_` since leading `_` has a\r\n    special meaning in Rust.\r\n  - `Ok(()) as Result<(), Error>` -> `Ok::<_, Error>(())`\r\n  - `Ok(assert_eq!(foo, bar)) as Result<(), Error>` ->\r\n    `assert_eq!(foo, bar); Ok::<_, Error>(())`\r\n\r\n- `management`\r\n\r\n  - Warnings for unused code and dead code are no longer disabled.\r\n  - `APIClient` no longer holds `Arc<Configuration<C>>` since it does not use it.\r\n    Thus it also no longer needs to be generic on `C`\r\n  - Rename `Error::ApiError` variant to `Error::Api`\r\n\r\n- `provisioning`\r\n\r\n  - Some `static` `&'static str` changed to `const`\r\n  - `Ok(()) as Result<(), Error>` -> `Ok::<_, Error>(())`\r\n\r\n- `tokio-named-pipe`\r\n\r\n  - Avoid potential overflow converting u64 to u32.\r\n\r\n- `workload`\r\n\r\n  - Warnings for unused code and dead code are no longer disabled.\r\n  - `APIClient` no longer holds `Arc<Configuration<C>>` since it does not use it.\r\n    Thus it also no longer needs to be generic on `C`\r\n  - Rename `Error::ApiError` variant to `Error::Api`\r\n\r\nThe following lints are disabled:\r\n\r\n- `cyclomatic_complexity`\r\n- `similar_names`\r\n- `stutter`: Complains about a type named `ErrorKind` inside a module\r\n  named `error`.\r\n- `use_self`: Complains about using the type's name in struct and enum literals. Using `Self` there is not a common practice.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/a8bf503bf392e9d2235c715af497936438ed500d"},{"sha":"a70a9fac94f8f2fe2db84116e2058365499f11cb","author":{"name":"mrohera","email":"4ec6af456d2c6bc44c0fe7b4adb631a2f3f4c669@microsoft.com"},"message":"Fix HSM integration test to be compatible across OpenSSL versions (#525)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/a70a9fac94f8f2fe2db84116e2058365499f11cb"},{"sha":"9a0c06e28d6c946f7da5bdfb9c46da5f1fab8fd0","author":{"name":"Varun Puranik","email":"6a1dfb90eb79385b0922973844ad495060f474bc@microsoft.com"},"message":"EdgeHub: Token update changes (#463)\n\n* Token update changes..\r\n\r\n* Fix tests\r\n\r\n* Fix test\r\n\r\n* Address comments\r\n\r\n* Address comments\r\n\r\n* Rename test file\r\n\r\n* Reformat","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/9a0c06e28d6c946f7da5bdfb9c46da5f1fab8fd0"},{"sha":"4dea9c16184758463a219c1fb057a886697355d7","author":{"name":"Anca Antochi","email":"ebd562ff04e3530319e821cd02aee7f01276e881@gmail.com"},"message":"Update functions runtime base image (#522)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/4dea9c16184758463a219c1fb057a886697355d7"},{"sha":"554716151f8802a8f1c2c38bdd5a6914fe2191a5","author":{"name":"Rajasekharan Vengalil","email":"791a3e0b19eb71d45ebbddb36d21dbdba004b2fb@gmail.com"},"message":"Add module list API definition to workload OpenAPI spec (#523)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/554716151f8802a8f1c2c38bdd5a6914fe2191a5"},{"sha":"c71ef7285ab8a7669d86157d3f7882b19af821f2","author":{"name":"Philip Lin","email":"e0af080b6dcb6b0bd4d101232a122caaa1413039@microsoft.com"},"message":"Fix for Windows E2E tests (#531)\n\nexplicitly add IOTEDGE_HOST environment variable in current session; in order to avoid hyper error when running \"iotedge list\" in e2e tests; and handle runtime log level in iotedgedWindows.cs.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/c71ef7285ab8a7669d86157d3f7882b19af821f2"},{"sha":"b1ee46916514779b5d8f001bfd2a2f4fdf2bf141","author":{"name":"Damon Barry","email":"b619536619dd9cf980a22b72f776bb64bf22850e@users.noreply.github.com"},"message":"Support Unix domain sockets in IoT Edge on Windows (#518)\n\nChanges to Edge Agent:\r\n- When Edge Agent builds the Docker \"createOptions\" string to send to iotedged, the bind-mount specification on Windows needs to point to the _parent directory_ for each socket file, not to the files themselves. On Windows, Docker can't bind-mount a Unix domain socket file.\r\n\r\nChanges to edgelet:\r\n- Change the default management and workload URIs (YAML config) for Windows to specify Unix domain sockets instead of HTTP endpoints.\r\n- Deserialize the management and workload URIs into file paths on Windows by parsing them with the `file://` scheme instead of `unix://`. This is because the `url` crate does lots of special handling of Windows paths for the `file://` scheme, but doesn't do it for \"non-special\" schemes like `unix://` (per the URL spec).\r\n- Depend on `mio-uds-windows`, `tokio-uds-windows`, and `hyperlocal-windows` crates on Windows. These are adaptations of `mio-uds`, `tokio-uds`, and `hyperlocal` respectively.\r\n- Where appropriate, remove the `#[cfg(unix)]` attribute from Unix domain socket-specific features that expected a Unix-only implementation, and add it in places where we still need to differentiate on platform. Notable examples:\r\n  - In `edgelet-http::unix::listener(path)`, only use umask to reset socket file permissions on Unix platforms.\r\n  - On Unix platforms check for existence of the Unix domain socket file with `file.exists()`. On Windows, use `fs::symlink_metadata()` instead because it works on reparse points (Unix domain sockets in Windows are reparse points).\r\n- Implement `UnixStreamExt::pid(&self)` for Windows\r\n- A test that previously used `UnixStream::pair()` to do its setup doesn't work on Windows because Winsock2 doesn't implement BSD's `pair` function. So create an ugly workaround for the test on Windows.\r\n- Use TempDir more pervasively in tests that create a socket file. In a Unix-only world we got away with simpler solutions that don't work if you can't rely on the existence of `/tmp`.\r\n- Move the test helper routine `run_uds_server` out of a linux-specific source file and into the parent `mod.rs`.\r\n- When the Edge Agent container is created in Windows, bind-mount the parent directory for each socket file rather than the file itself, just as Edge Agent does for other modules.\r\n\r\nIn the Windows installer script:\r\n- Create the parent directory for each socket file, and give Modify rights to a well-known group (`NT AUTHORITY\\Authenticated Users`) that will exist in any container so that non-privileged modules can access it. Since we give the rights to the parent folder, we don't need to recreate the permissions every time iotedged restarts, like we do for Unix platforms. (_Note: this part of the script is disabled for now, until we have everything in place to fully support UDS in IoT Edge on Windows, specifically RS5-based module images and the ability to use process-isolated containers on non-Server Windows._)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/b1ee46916514779b5d8f001bfd2a2f4fdf2bf141"},{"sha":"8c01fda3b71552f2d4fed33cb0d9823d1a9653e9","author":{"name":"Mike Yagley","email":"6ca031a6065f4d21179f35fcaa510429307da4dc@gmail.com"},"message":"Add edge hub TLS proxy module (#529)\n\n* Add Dockerfile for edge hub proxy\r\n\r\n* Add rust wrapper\r\n\r\n* Run command after cert retrieval\r\n\r\n* Add logging\r\n\r\n* Add README.md\r\n\r\n* Remove the dockerignore","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/8c01fda3b71552f2d4fed33cb0d9823d1a9653e9"},{"sha":"c525acc28a20c3f6c4198ea8db48a76ad61e4d2c","author":{"name":"David Robson","email":"dad613e33ab1f67ffac2bc57beaa453f6d755f49@microsoft.com"},"message":"I think we don't want to be 100% strict on requiring network-online.target, (#533)\n\nespecially for offline scenarios. Different distros may have a different\r\ndefinition applied to \"network online\" and we don't want our service to\r\nbe stopped if the offline system never meets this target.\r\n\r\nAlso for offline scenarios, we want the iotedge service to be started after\r\ndocker services.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/c525acc28a20c3f6c4198ea8db48a76ad61e4d2c"},{"sha":"d3f801ba27acea42664876d3dd70fd695f69de5e","author":{"name":"Varun Puranik","email":"6a1dfb90eb79385b0922973844ad495060f474bc@microsoft.com"},"message":"EdgeHub: Drain messages from disconnected clients to IoTHub (#490)\n\n* Changes to create cloud connection for disconnected clients\r\n\r\n* Add and fix tests\r\n\r\n* More cloud connection tests\r\n\r\n* FIx tests\r\n\r\n* Fix tests\r\n\r\n* Fix rebase issues\r\n\r\n* Fix test\r\n\r\n* Fix tests after rebase\r\n\r\n* Address comments","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/d3f801ba27acea42664876d3dd70fd695f69de5e"},{"sha":"12310af7ba0fa478038cabf3a5715b41b81028b4","author":{"name":"Mike Yagley","email":"6ca031a6065f4d21179f35fcaa510429307da4dc@gmail.com"},"message":"Move yaml to ubuntu 16.04 pool (#545)\n\n* Move yaml to ubuntu 16.04 pool\r\n\r\n* Update pool names\r\n\r\n* Fix dotnet yaml\r\n\r\n* Make inclusion more specific\r\n\r\n* More fine grained exclusion on libiothsm","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/12310af7ba0fa478038cabf3a5715b41b81028b4"},{"sha":"e0a76f87a632d3a50aba1d442c8a45be8b5f2c01","author":{"name":"Mike Yagley","email":"6ca031a6065f4d21179f35fcaa510429307da4dc@gmail.com"},"message":"Remove pull request validation paths for now (#547)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/e0a76f87a632d3a50aba1d442c8a45be8b5f2c01"},{"sha":"5f5fd67631d69e95c17c6bc32e9f1926da237034","author":{"name":"Varun Puranik","email":"6a1dfb90eb79385b0922973844ad495060f474bc@microsoft.com"},"message":"Handle NRE from SDK (#541)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/5f5fd67631d69e95c17c6bc32e9f1926da237034"},{"sha":"326ef8c0075e66834c82b36fc5551b8ef74f0098","author":{"name":"Arnav Singh","email":"032853dc82ae88b916a68615683e8efe0e76425d@microsoft.com"},"message":"More informative errors (#543)\n\nBefore this change, errors from other libraries (eg `serde::de::Error`)\r\nwere converted to a context error where the context was named after the library\r\n(eg `ErrorKind::Serde`). This change replaces these contexts with meaningful\r\ndescriptions of the actual operation going on (eg `InvalidModuleName(String)`).\r\n\r\nThe `From<other_library::Error> for this_crate::Error` impls have also been\r\nremoved, since the generic error kinds these impls relied on no longer exist,\r\nand to ensure that new error kind contexts are added in the future\r\nas necessary.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/326ef8c0075e66834c82b36fc5551b8ef74f0098"},{"sha":"75e796826d7a8c8161b0189e24da2cc6f27655d8","author":{"name":"Varun Puranik","email":"6a1dfb90eb79385b0922973844ad495060f474bc@microsoft.com"},"message":"Fix getting CloudProxy when no identity exists (#548)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/75e796826d7a8c8161b0189e24da2cc6f27655d8"},{"sha":"7fa87d614fe56fc87ad964b35058dcb223641682","author":{"name":"Damon Barry","email":"b619536619dd9cf980a22b72f776bb64bf22850e@users.noreply.github.com"},"message":"Update reference to mio-uds-windows (#549)\n\nThis fixes a bug in release builds of iotedged on Windows with UDS configured.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/7fa87d614fe56fc87ad964b35058dcb223641682"},{"sha":"df3d4e4bfd164341ebf31a6f821b25650def0f02","author":{"name":"Anca Antochi","email":"ebd562ff04e3530319e821cd02aee7f01276e881@gmail.com"},"message":"Add X-Content-Type-Options header (#540)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/df3d4e4bfd164341ebf31a6f821b25650def0f02"},{"sha":"3f1a0856235196f04ac2655aa10e53c9e58d8b58","author":{"name":"mrohera","email":"4ec6af456d2c6bc44c0fe7b4adb631a2f3f4c669@microsoft.com"},"message":"Add support to obtain trust bundle from iotedged or an input file (#558)\n\nAdd functionality along with tests in the Edge Hub to obtain the trust bundle either from the iotedged or an input file to facilitate development. The trust bundle is not really used here rather this is being staged for additional upcoming features.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/3f1a0856235196f04ac2655aa10e53c9e58d8b58"},{"sha":"f8e0d7405359548c0ad5f998db140698bce81d01","author":{"name":"mrohera","email":"4ec6af456d2c6bc44c0fe7b4adb631a2f3f4c669@microsoft.com"},"message":"Fix to SAN URI for identity certificates (#561)","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/f8e0d7405359548c0ad5f998db140698bce81d01"},{"sha":"52ad228b1ff875be62aade6335e8ac7865603480","author":{"name":"Damon Barry","email":"b619536619dd9cf980a22b72f776bb64bf22850e@users.noreply.github.com"},"message":"iotedged should return 304 not 500 (#560)\n\nWe recently began seeing a problem where iotedged couldn't restart if it didn't give edgeAgent time to gracefully shutdown all modules before it went down. This is a problem on Windows where iotedged as a Windows service is terminated by the OS after five seconds.\r\n\r\nThe problem was that some error translation logic in our iotedged management endpoint was looking in the wrong part of the error coming from our core, and therefore not finding what it was expecting (304 not modified) and returning 500 (internal server error). The fix was to update the translation logic to look in the right place.\r\n\r\nI also added a unit test for the 304 error specifically, and updated the existing ones.","distinct":false,"url":"https://api.github.com/repos/avranju/iotedge/commits/52ad228b1ff875be62aade6335e8ac7865603480"}]}
{"actor":{"display_login":"avranju"}}