{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":269495508,"defaultBranch":"main","name":"go-envconfig","ownerLogin":"sethvargo","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-06-05T00:40:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/408570?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716060336.0","currentOid":""},"activityList":{"items":[{"before":"adaaa5560bb14eda2c27f37e3fa2869e45f8f1f3","after":null,"ref":"refs/heads/sethvargo/relax_go","pushedAt":"2024-05-18T19:24:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"4970c731215c860629c93a17dd892d86ea68e689","after":"e51a54f91f5b9b2849b0cd0fb412e14afc9a4659","ref":"refs/heads/main","pushedAt":"2024-05-18T19:24:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Relax Go constraint to 1.20 (#113)","shortMessageHtmlLink":"Relax Go constraint to 1.20 (#113)"}},{"before":"fdfead6833c75c3651958d45c8578f212b0f6006","after":"adaaa5560bb14eda2c27f37e3fa2869e45f8f1f3","ref":"refs/heads/sethvargo/relax_go","pushedAt":"2024-05-18T19:23:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Relax Go constraint to 1.20","shortMessageHtmlLink":"Relax Go constraint to 1.20"}},{"before":null,"after":"fdfead6833c75c3651958d45c8578f212b0f6006","ref":"refs/heads/sethvargo/relax_go","pushedAt":"2024-05-18T19:22:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Relax Go constraint to 1.18","shortMessageHtmlLink":"Relax Go constraint to 1.18"}},{"before":"d04082ec9f556d44080a5b3c45d1e5c4d62360a4","after":null,"ref":"refs/heads/sethvargo/docs","pushedAt":"2024-05-16T21:18:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"61cfc0ddc1516f793a0bdf1a6a9cd91e9e22782a","after":"4970c731215c860629c93a17dd892d86ea68e689","ref":"refs/heads/main","pushedAt":"2024-05-16T21:18:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Fix docs (#110)","shortMessageHtmlLink":"Fix docs (#110)"}},{"before":null,"after":"d04082ec9f556d44080a5b3c45d1e5c4d62360a4","ref":"refs/heads/sethvargo/docs","pushedAt":"2024-05-16T21:17:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Fix docs","shortMessageHtmlLink":"Fix docs"}},{"before":"7e286de0bac3936b1739794b1fefad72021c8bef","after":"61cfc0ddc1516f793a0bdf1a6a9cd91e9e22782a","ref":"refs/heads/main","pushedAt":"2024-05-16T21:14:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Handle case where user accidentally uses Process() with a Config when… (#109)\n\n* Handle case where user accidentally uses Process() with a Config when they should use ProcessWith() by converting their call to the respective ProcessWith call.\r\n\r\n* Document Special case for Config\r\n\r\n* Document Special case for Config","shortMessageHtmlLink":"Handle case where user accidentally uses Process() with a Config when… ("}},{"before":"2e826844914c4bd70f484ad86eff6ab3bcf38380","after":"7e286de0bac3936b1739794b1fefad72021c8bef","ref":"refs/heads/main","pushedAt":"2024-03-24T20:32:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Fix README example code comment (#106)\n\nSigned-off-by: katsuharu ","shortMessageHtmlLink":"Fix README example code comment (#106)"}},{"before":"bec89e0e015d1611d27309ed58768caeb49b2049","after":"2e826844914c4bd70f484ad86eff6ab3bcf38380","ref":"refs/heads/main","pushedAt":"2024-03-12T00:32:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Fix docs (#105)","shortMessageHtmlLink":"Fix docs (#105)"}},{"before":"27203169ae34060e3926994a241d7cc73d464076","after":null,"ref":"refs/heads/sethvargo/up","pushedAt":"2024-03-06T02:32:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"13fa723da4ad08f887b9277467a23870fa325f3a","after":"bec89e0e015d1611d27309ed58768caeb49b2049","ref":"refs/heads/main","pushedAt":"2024-03-06T02:32:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Update deps (#104)","shortMessageHtmlLink":"Update deps (#104)"}},{"before":"a4ac354c4fc77b87a1d6e3db34eaa55dff06eb21","after":"27203169ae34060e3926994a241d7cc73d464076","ref":"refs/heads/sethvargo/up","pushedAt":"2024-03-06T02:31:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Update deps","shortMessageHtmlLink":"Update deps"}},{"before":null,"after":"a4ac354c4fc77b87a1d6e3db34eaa55dff06eb21","ref":"refs/heads/sethvargo/up","pushedAt":"2024-03-06T02:30:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Update deps","shortMessageHtmlLink":"Update deps"}},{"before":"ee3f51d2c2f57a408d61d81dcf9ce3a566866841","after":"13fa723da4ad08f887b9277467a23870fa325f3a","ref":"refs/heads/main","pushedAt":"2023-12-27T22:45:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Fix docs","shortMessageHtmlLink":"Fix docs"}},{"before":"0327a5110a6639cf9dd0c55647a3a8142f2c09a7","after":null,"ref":"refs/heads/sethvargo/docs","pushedAt":"2023-12-27T22:23:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"ed1aec110f27d5754124a95c5feef14b04d79141","after":"ee3f51d2c2f57a408d61d81dcf9ce3a566866841","ref":"refs/heads/main","pushedAt":"2023-12-27T22:23:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Update docs and examples (#101)","shortMessageHtmlLink":"Update docs and examples (#101)"}},{"before":null,"after":"0327a5110a6639cf9dd0c55647a3a8142f2c09a7","ref":"refs/heads/sethvargo/docs","pushedAt":"2023-12-27T22:23:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Update docs and examples","shortMessageHtmlLink":"Update docs and examples"}},{"before":"578b1eda71543b9e33850795ee8056be6addbe0d","after":null,"ref":"refs/heads/sethvargo/decode","pushedAt":"2023-12-27T20:30:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"668ea4a06711206a20ac44ffef63094d94e87cd7","after":"ed1aec110f27d5754124a95c5feef14b04d79141","ref":"refs/heads/main","pushedAt":"2023-12-27T20:30:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Allow configurable decoding (#100)\n\n**:warning: Breaking!** Envconfig no longer runs decoders on unset values! To restore the old behavior, add the `decodeunset` struct field annotation or pass the `DefaultDecodeUnset` configuration option as `true`.\r\n\r\nPrior to this change, envconfig would always call decoding functions, even for unset or empty values. This proved problematic for some libraries like `url` and `zap` which implement `TextUnmarshaller`, but error on the empty string (#61). #62 changed the behavior to only call the decoder if a value was explicitly provided, but that broke users unexpectedly (#64), so the change was reverted.\r\n\r\nAfter much discussion, we decided to keep the existing behavior until the 1.0 release. However, after further reflection, I think we need to support a user-level configurable option. Some fields and structs may still want the decoder to run on empty values.\r\n\r\nThis PR changes envconfig to only process a field if any of the following are true:\r\n\r\n- A value was provided (the value can be set to the empty string, there is a distinction between \"unset\" and \"set to empty\")\r\n- A default value was provided\r\n- The `decodeunset` struct field tag is set\r\n- The `DefaultDecodeUnset` configuration option is true","shortMessageHtmlLink":"Allow configurable decoding (#100)"}},{"before":null,"after":"578b1eda71543b9e33850795ee8056be6addbe0d","ref":"refs/heads/sethvargo/decode","pushedAt":"2023-12-27T20:29:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Allow configurable decoding\n\n**:warning: Breaking!** Envconfig no longer runs decoders on unset values! To restore the old behavior, add the `decodeunset` struct field annotation or pass the `DefaultDecodeUnset` configuration option as `true`.\n\nPrior to this change, envconfig would always call decoding functions, even for unset or empty values. This proved problematic for some libraries like `url` and `zap` which implement `TextUnmarshaller`, but error on the empty string (#61). #62 changed the behavior to only call the decoder if a value was explicitly provided, but that broke users unexpectedly (#64), so the change was reverted.\n\nAfter much discussion, we decided to keep the existing behavior until the 1.0 release. However, after further reflection, I think we need to support a user-level configurable option. Some fields and structs may still want the decoder to run on empty values.\n\nThis PR changes envconfig to only process a field if any of the following are true:\n\n- A value was provided (the value can be set to the empty string, there is a distinction between \"unset\" and \"set to empty\")\n- A default value was provided\n- The `decodeunset` struct field tag is set\n- The `DefaultDecodeUnset` configuration option is true","shortMessageHtmlLink":"Allow configurable decoding"}},{"before":"20ca5f27af53dfef10a058e88ab0027f204cf34c","after":null,"ref":"refs/heads/sethvargo/prefix_resolve","pushedAt":"2023-12-20T04:32:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"2938058a9be2a35e293cd08b39e2cadd4e825aeb","after":"668ea4a06711206a20ac44ffef63094d94e87cd7","ref":"refs/heads/main","pushedAt":"2023-12-20T04:32:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Ignore prefix computing environment variable defaults (#99)","shortMessageHtmlLink":"Ignore prefix computing environment variable defaults (#99)"}},{"before":"49ca2082c38d7cdb9aeaadc1cada7ad24b104106","after":"20ca5f27af53dfef10a058e88ab0027f204cf34c","ref":"refs/heads/sethvargo/prefix_resolve","pushedAt":"2023-12-20T04:31:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Ignore prefix computing environment variable defaults","shortMessageHtmlLink":"Ignore prefix computing environment variable defaults"}},{"before":null,"after":"49ca2082c38d7cdb9aeaadc1cada7ad24b104106","ref":"refs/heads/sethvargo/prefix_resolve","pushedAt":"2023-12-20T04:29:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Ignore prefix computing environment variable defaults","shortMessageHtmlLink":"Ignore prefix computing environment variable defaults"}},{"before":"87d3d65ffe8c7ef1f2d5807d64a24b4a625cf3df","after":null,"ref":"refs/heads/sethvargo/tests","pushedAt":"2023-12-20T04:11:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"9dce086410e5ba9ff83a954be3f2284d3e6ae3c1","after":"2938058a9be2a35e293cd08b39e2cadd4e825aeb","ref":"refs/heads/main","pushedAt":"2023-12-20T04:11:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Add more test coverage for global configs (#98)","shortMessageHtmlLink":"Add more test coverage for global configs (#98)"}},{"before":null,"after":"87d3d65ffe8c7ef1f2d5807d64a24b4a625cf3df","ref":"refs/heads/sethvargo/tests","pushedAt":"2023-12-20T04:10:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Add more test coverage for global configs","shortMessageHtmlLink":"Add more test coverage for global configs"}},{"before":"ba15a277df91bbb5c300bfbb3e74bbc243a6bd8f","after":null,"ref":"refs/heads/sethvargo/globals","pushedAt":"2023-12-20T03:39:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"}},{"before":"d42f4a2e352abcdc8e18e6f5f2397c18656db3be","after":"9dce086410e5ba9ff83a954be3f2284d3e6ae3c1","ref":"refs/heads/main","pushedAt":"2023-12-20T03:39:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sethvargo","name":"Seth Vargo","path":"/sethvargo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/408570?s=80&v=4"},"commit":{"message":"Introduce global and cascading configuration options (#97)\n\nThis introduces the concept of global configurations and cascades struct-level configuration options onto all child fields. For example, marking a struct as required will mark all child fields as required. Similarly, setting a custom delimiter on a struct tag propagates that delimiter to all child fields of the struct.","shortMessageHtmlLink":"Introduce global and cascading configuration options (#97)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETcGa2gA","startCursor":null,"endCursor":null}},"title":"Activity · sethvargo/go-envconfig"}