{"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:1709692344.0","currentOid":""},"activityList":{"items":[{"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)"}},{"before":"cb1054ba99ae519a6ab2a61dd5b4c07be7b34308","after":"ba15a277df91bbb5c300bfbb3e74bbc243a6bd8f","ref":"refs/heads/sethvargo/globals","pushedAt":"2023-12-20T03:38:30.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":"Introduce global and cascading configuration options\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"}},{"before":"ce874ea219d2df2257f00a6dd4e6dcf27c3a48fc","after":"cb1054ba99ae519a6ab2a61dd5b4c07be7b34308","ref":"refs/heads/sethvargo/globals","pushedAt":"2023-12-20T03:37:26.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":"Introduce global and cascading configuration options\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"}},{"before":"d9c781926d3f5fdc2b4d3412132a0a1c89f4d28a","after":"ce874ea219d2df2257f00a6dd4e6dcf27c3a48fc","ref":"refs/heads/sethvargo/globals","pushedAt":"2023-12-20T03:35:27.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":"Introduce global and cascading configuration options\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"}},{"before":null,"after":"d9c781926d3f5fdc2b4d3412132a0a1c89f4d28a","ref":"refs/heads/sethvargo/globals","pushedAt":"2023-12-19T22:36:05.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":"Introduce global and cascading configuration options\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"}},{"before":"281dd6cd1d1b16c23bc2593b71859a0f8739a357","after":null,"ref":"refs/heads/sethvargo/cleanuptests","pushedAt":"2023-12-18T23:43:55.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":"49064283e6873c0eccb8cdf89e0f335131118c89","after":"d42f4a2e352abcdc8e18e6f5f2397c18656db3be","ref":"refs/heads/main","pushedAt":"2023-12-18T23:43:54.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":"Use generics to clean up pointer pointers in tests (#96)","shortMessageHtmlLink":"Use generics to clean up pointer pointers in tests (#96)"}},{"before":null,"after":"281dd6cd1d1b16c23bc2593b71859a0f8739a357","ref":"refs/heads/sethvargo/cleanuptests","pushedAt":"2023-12-18T23:43:20.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":"Use generics to clean up pointer pointers in tests","shortMessageHtmlLink":"Use generics to clean up pointer pointers in tests"}},{"before":"aa5385c23c6f9d98b395dcbc5f98541b193f2962","after":null,"ref":"refs/heads/sethvargo/defaults","pushedAt":"2023-12-18T21:40:31.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"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEHgjo0AA","startCursor":null,"endCursor":null}},"title":"Activity ยท sethvargo/go-envconfig"}