{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":360274352,"defaultBranch":"main","name":"go-pinecone","ownerLogin":"pinecone-io","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-04-21T18:51:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/54333248?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718745221.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"9795251bb24653994dae9424d4e9d85fbdaf23d3","ref":"refs/heads/Audrey/openapi-version-pin","pushedAt":"2024-06-18T21:13:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aulorbe","name":"Audrey Sage Lorberfeld","path":"/aulorbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18585860?s=80&v=4"},"commit":{"message":"Pin oapi-codegen version to latest that uses the /deepmap path","shortMessageHtmlLink":"Pin oapi-codegen version to latest that uses the /deepmap path"}},{"before":"eda5ae674e18291fafaeda119e441bea871e5005","after":null,"ref":"refs/heads/Audrey/update-oapi-dependency","pushedAt":"2024-06-18T21:12:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aulorbe","name":"Audrey Sage Lorberfeld","path":"/aulorbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18585860?s=80&v=4"}},{"before":null,"after":"eda5ae674e18291fafaeda119e441bea871e5005","ref":"refs/heads/Audrey/update-oapi-dependency","pushedAt":"2024-06-18T19:36:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aulorbe","name":"Audrey Sage Lorberfeld","path":"/aulorbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18585860?s=80&v=4"},"commit":{"message":"Update OpenAPI repo path","shortMessageHtmlLink":"Update OpenAPI repo path"}},{"before":"74d08cb2df8e616651e31a0f83e10b0e440ecba0","after":null,"ref":"refs/heads/adenoble/bump-to-v0.5.0","pushedAt":"2024-06-08T16:31:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"}},{"before":"b471e0c04e8ad96e38c843708ebfa3900d15b506","after":"257e9f6453ff41ce32bca1eff55687ef96432bab","ref":"refs/heads/main","pushedAt":"2024-06-08T16:31:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"Bump `getPackageVersion()` to v0.5.0, allow `:` in source tag normalization (#24)\n\n## Problem\r\nWe want to release a new patch version of the Go SDK, and we need to\r\nbump the version for the user-agent. We also want to allow source tag\r\nnormalization to accept `:`.\r\n\r\n## Solution\r\n\r\n- Update `getPackageVersion` to `v0.5.0`.\r\n- Update `buildSourceTagField()` to allow `:` as a character.\r\n\r\nThe new patch includes:\r\n- Fixing context.Context being a pointer instead of value in our\r\nnetworking functions.\r\n- Adding optional configurations for headers / metadata in REST / gRPC\r\noperations.\r\n- Fixing issues with json marshaling in our structs.\r\n- Adding consistent error handling to control plane operations. \r\n\r\n## Type of Change\r\n\r\n- [] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to not work as expected)\r\n- [ ] This change requires a documentation update\r\n- [ ] Infrastructure change (CI configs, etc)\r\n- [ ] Non-code change (docs, etc)\r\n- [] None of the above: chore for version bumping)\r\n\r\n## Test Plan\r\nuser-agent values can be validated through DataDog, unit test to cover\r\nthe addition to source tag normalization","shortMessageHtmlLink":"Bump getPackageVersion() to v0.5.0, allow : in source tag normali…"}},{"before":"604d8dfd3a21c6edbaf2280e38687847adcb89ff","after":"74d08cb2df8e616651e31a0f83e10b0e440ecba0","ref":"refs/heads/adenoble/bump-to-v0.5.0","pushedAt":"2024-06-07T23:37:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"update source tag normalization to include :","shortMessageHtmlLink":"update source tag normalization to include :"}},{"before":null,"after":"604d8dfd3a21c6edbaf2280e38687847adcb89ff","ref":"refs/heads/adenoble/bump-to-v0.5.0","pushedAt":"2024-06-07T23:09:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"bump version in getPackageVersion to 0.5.0","shortMessageHtmlLink":"bump version in getPackageVersion to 0.5.0"}},{"before":"c7eda0ad9ba333b9762038564e277f61d95a97ad","after":"b471e0c04e8ad96e38c843708ebfa3900d15b506","ref":"refs/heads/main","pushedAt":"2024-06-07T22:50:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"Add error handling to REST operations in `Client` (#23)\n\n## Problem\r\nWe're currently not including the code with error responses from\r\n`Client`. Additionally, we don't seem to be gracefully handling possible\r\n`ErrorResponse` bodies alongside more generic JSON and string responses.\r\n\r\nThere's an issue tracking this problem here:\r\nhttps://github.com/pinecone-io/go-pinecone/issues/17\r\n\r\nUltimately, we want to surface more useful information to users through\r\nerrors.\r\n\r\n## Solution\r\nThis PR focuses on improving the errors that are returned from REST\r\noperations in `Client` methods.\r\n\r\n- Decode the `http.Response` `Body` once, and then use the `[]byte`\r\nvalue to decode into either errors or response structs.\r\n- Update `decodeIndex` and `decodeCollection` to take in `[]byte` rather\r\nthan `io.ReadCloser`. Most of this was done to avoid reading the body to\r\nEOF.\r\n- Add `errorResponseMap` which is used to build up the error\r\ninformation.\r\n- Add `decodeErrorResponse`, `handleErrorResponseBody`, and\r\n`formatError` to deal with parsing error payloads and turning them into\r\nmore readable output.\r\n- Add `PineconeError` which extends the `error` interface and wraps\r\nerrors in a struct consumers are able to use if they'd like via\r\nreflection.\r\n\r\n## Type of Change\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to not work as expected)\r\n- [ ] This change requires a documentation update\r\n- [ ] Infrastructure change (CI configs, etc)\r\n- [ ] Non-code change (docs, etc)\r\n- [ ] None of the above: (explain here)\r\n\r\n## Test Plan\r\nUnit tests and a few integration tests have been added to validate\r\n`handleErrorResponseBody` and that we're returning `PineconeError` from\r\nfailed network operations.\r\n\r\n\r\n---\r\n- To see the specific tasks where the Asana app for GitHub is being\r\nused, see below:\r\n - https://app.asana.com/0/0/1207208972408344","shortMessageHtmlLink":"Add error handling to REST operations in Client (#23)"}},{"before":"58cad7d9f064b51dbbf5ea462ed016bbe55819d0","after":null,"ref":"refs/heads/adenoble/error-handling","pushedAt":"2024-06-07T22:50:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"}},{"before":"75a2115258dd89ad2e4ebf2fd753c372e73907ea","after":"58cad7d9f064b51dbbf5ea462ed016bbe55819d0","ref":"refs/heads/adenoble/error-handling","pushedAt":"2024-06-07T22:43:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"review feedback: do not preemptively read the response body, rely on checking statuscode to determine when we need to read to parse errors, or when we return responses. update unit tests","shortMessageHtmlLink":"review feedback: do not preemptively read the response body, rely on …"}},{"before":null,"after":"75a2115258dd89ad2e4ebf2fd753c372e73907ea","ref":"refs/heads/adenoble/error-handling","pushedAt":"2024-05-29T16:32:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"add error handling to REST methods on Client method operations","shortMessageHtmlLink":"add error handling to REST methods on Client method operations"}},{"before":"cbb7f756af41729c7ddadfc1b7012e7aec77cca8","after":"c7eda0ad9ba333b9762038564e277f61d95a97ad","ref":"refs/heads/main","pushedAt":"2024-05-16T07:04:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"Configure `apiKey`, `additionalHeaders`, and `host` through environment variables (#22)\n\n## Problem\r\nThere was a request to add additional configuration validation to the Go\r\nclient as you could make requests with an empty `apiKey`. An empty check\r\nand early error return were added in a previous PR when passing `apiKey`\r\ndirectly:\r\nhttps://github.com/pinecone-io/go-pinecone/pull/18/files#diff-37c3a14781b4b6e74bcc0cfc8b2462ee2ae243a720a42669256248a3cb005f01R442-R444\r\n\r\nWe're also lacking the ability to specify an api key or headers through\r\nenvironment variables like the Python client, which can be a nice UX\r\ntweak for options in how you configure the client. Additionally, there's\r\nno way to specify a control plane host override, which is useful in\r\nsituations where we need to hit a staging URL.\r\n\r\n## Solution\r\n- Refactor `buildClientOptions()` into a method on the `NewClientParams`\r\nstruct rather than a function which receives the struct.\r\n- Add ability to specify `PINECONE_API_KEY`,\r\n`PINECONE_ADDITIONAL_HEADERS`, and `PINECONE_CONTROLLER_HOST` through\r\nenvironment variables. I kept the naming aligned with Python for now.\r\n- For these values, if the corresponding field has been passed through\r\n`NewClientParams` directly, the passed value will override anything set\r\nin the environment.\r\n- Add unit tests to validate override behavior, and headers being added\r\nas expected.\r\n\r\n## Type of Change\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to not work as expected)\r\n- [ ] This change requires a documentation update\r\n- [ ] Infrastructure change (CI configs, etc)\r\n- [ ] Non-code change (docs, etc)\r\n- [ ] None of the above: (explain here)\r\n\r\n## Test Plan\r\nCI and new unit tests.\r\n\r\n\r\n---\r\n- To see the specific tasks where the Asana app for GitHub is being\r\nused, see below:\r\n - https://app.asana.com/0/0/1207208972408325\r\n - https://app.asana.com/0/0/1207208968992757","shortMessageHtmlLink":"Configure apiKey, additionalHeaders, and host through environme…"}},{"before":"2e394d842542c36be54f391349c3e1f28033b164","after":null,"ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-16T07:04:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"}},{"before":"7dea9947206e2914156385ce3c95dbd2e4ebfd60","after":"2e394d842542c36be54f391349c3e1f28033b164","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-16T07:01:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"move buildClientBaseOptions back down","shortMessageHtmlLink":"move buildClientBaseOptions back down"}},{"before":"99e6972d53cd3e9d43d64c799fe85b11e96defaf","after":"7dea9947206e2914156385ce3c95dbd2e4ebfd60","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-16T06:57:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"more review feedback: rename URL scheme checker, remove extra API key env value, remove unnecessary test","shortMessageHtmlLink":"more review feedback: rename URL scheme checker, remove extra API key…"}},{"before":"db00a6d3c2f046245213667cf85b051d84995c03","after":"99e6972d53cd3e9d43d64c799fe85b11e96defaf","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-15T13:47:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"update client_test","shortMessageHtmlLink":"update client_test"}},{"before":"fc13ea13acd3717cd574df0df3da51774606b993","after":"db00a6d3c2f046245213667cf85b051d84995c03","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-15T13:45:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"update INTEGREATION_PINECONE_API_KEY to TEST_ to match with the associated env values","shortMessageHtmlLink":"update INTEGREATION_PINECONE_API_KEY to TEST_ to match with the assoc…"}},{"before":"e6ba260367e050305ac3a3dd5f0a92e7d7a5fa90","after":"fc13ea13acd3717cd574df0df3da51774606b993","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-15T13:36:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"add comments back to NewClientParams struct","shortMessageHtmlLink":"add comments back to NewClientParams struct"}},{"before":"9f56dedf4cb956cc5579401fe8be8d5e23ad5a52","after":"e6ba260367e050305ac3a3dd5f0a92e7d7a5fa90","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-14T23:57:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"refactor NewClientParams into NewClientBaseParams, update NewClient func and add NewClientBase, update tests to support the new interface for creating clients, remove apiKey from Client and IndexConnection, handle turning apiKey into a header early, and allowing for complete control over headers without using apiKey","shortMessageHtmlLink":"refactor NewClientParams into NewClientBaseParams, update NewClient f…"}},{"before":"6eb91a3660e431daccf39ec18eec6f05971cb5f6","after":"9f56dedf4cb956cc5579401fe8be8d5e23ad5a52","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-14T16:40:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"refactor into NewClientParams and NewClientBaseParams","shortMessageHtmlLink":"refactor into NewClientParams and NewClientBaseParams"}},{"before":"995829d0e2fb536fa07124a550417fd332de0ce6","after":"6eb91a3660e431daccf39ec18eec6f05971cb5f6","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-09T03:05:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"add ability to specify host override for control plane operations through NewClientParams or environment variables, add tests","shortMessageHtmlLink":"add ability to specify host override for control plane operations thr…"}},{"before":"8446df9b40d80fe8a566e5e156cb8c3335a2476b","after":"995829d0e2fb536fa07124a550417fd332de0ce6","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-08T23:06:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"update CI workflow env variable","shortMessageHtmlLink":"update CI workflow env variable"}},{"before":"8eac891605518785da08d3c5231ebd2ab7ce3a34","after":"8446df9b40d80fe8a566e5e156cb8c3335a2476b","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-08T23:03:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"remove printf statements()","shortMessageHtmlLink":"remove printf statements()"}},{"before":null,"after":"8eac891605518785da08d3c5231ebd2ab7ce3a34","ref":"refs/heads/adenoble/configuration-validation","pushedAt":"2024-05-08T22:44:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"add ability to provide apiKey and additional headers through environment variables, add logic for using passed params over environment variables where applicable, add new unit tests","shortMessageHtmlLink":"add ability to provide apiKey and additional headers through environm…"}},{"before":"4db920c6446af4c599c2dcef98ed734f59a86c98","after":null,"ref":"refs/heads/adenoble/json-marshaling-annotations","pushedAt":"2024-05-07T22:31:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"}},{"before":"5a9897e1f40b0b782e2e24c99c854e0633e52c5e","after":"cbb7f756af41729c7ddadfc1b7012e7aec77cca8","ref":"refs/heads/main","pushedAt":"2024-05-07T22:31:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"Add `json:\"\"` marshaling annotations to response structs (#21)\n\n## Problem\r\nThere's been some UX feedback regarding marshaling of some of our\r\nresponse structs.\r\n\r\nPrimarily, we're not using `json:\"key_name\"` annotation for our struct\r\nfields so they default to capitalized keys in JSON output when\r\nmarshaled. IE: `{ \"Usage\": { \"ReadUnits\": 5 }}`. We'd like these lower\r\ncase and matched with our API spec.\r\n\r\nThere are also instances where we're returning pointers for certain\r\n`*int32` fields which can be irritating to consumers needing to\r\ndereference and nil-check. In certain cases we can default any nil\r\npointer values to 0 before returning things.\r\n\r\nThere's no testing for the marshaling on any of our custom structs.\r\n\r\n## Solution\r\nI may have gone a bit overboard with the testing here. The bulk of this\r\nis tests and the tests are all very similar, definitely open to opinions\r\non removing if people find them unnecessary, but changing up how the\r\nJSON is produced is pretty easy and it's an important point of\r\nintegration in my mind, so maybe worth testing for.\r\n\r\nI also wasn't clear if adding these annotations to our request structs\r\nmade sense either, so I left those out for now. Overall I'm still\r\nworking on getting a better understanding of Go syntax and expectations.\r\n\r\n- Add JSON marshaling annotations to the response structs in `models.go`\r\nand `index_connection.go`.\r\n- Update `Collection` and `Usage` structs to default integer values\r\nrather than using pointers.\r\n- Add new `models_test.go` file to run through some validation on struct\r\nmarshaling, also add unit tests to `index_connection_test.go`.\r\n\r\nOriginally I thought `omitempty` for some of these pointers may be\r\nhelpful from a consumer standpoint, but I'm actually not sure the more\r\nI've thought about it. Does it make sense to omit more or less things?\r\nOther feedback here would be much appreciated.\r\n\r\n## Type of Change\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [X] Breaking change (fix or feature that would cause existing\r\nfunctionality to not work as expected)\r\n- [ ] This change requires a documentation update\r\n- [ ] Infrastructure change (CI configs, etc)\r\n- [ ] Non-code change (docs, etc)\r\n- [ ] None of the above: (explain here)\r\n\r\n## Test Plan\r\nUnit tests to explicitly stress marshaling the structs via\r\n`json.Marshal()`.","shortMessageHtmlLink":"Add json:\"\" marshaling annotations to response structs (#21)"}},{"before":"567551dbc156f81ae2a5cc7ffabe349f13799ca8","after":"4db920c6446af4c599c2dcef98ed734f59a86c98","ref":"refs/heads/adenoble/json-marshaling-annotations","pushedAt":"2024-05-07T21:34:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"review feedback, fix newly failing delete by filter test, tweak additional structs to default to 0 integer values rather than passing a pointer, clean up tests","shortMessageHtmlLink":"review feedback, fix newly failing delete by filter test, tweak addit…"}},{"before":"7ac687d2c9c4d35e3c0a45f5ff566db1ab24d377","after":"567551dbc156f81ae2a5cc7ffabe349f13799ca8","ref":"refs/heads/adenoble/json-marshaling-annotations","pushedAt":"2024-05-06T20:59:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"tweak index_connection_test tests","shortMessageHtmlLink":"tweak index_connection_test tests"}},{"before":"89fc762240cd0f5927b9ab9a86886cbdff153930","after":null,"ref":"refs/heads/adenoble/custom-request-headers","pushedAt":"2024-05-06T20:48:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"}},{"before":"32391bcb7b862570139e272797ade4ecca50aab3","after":"5a9897e1f40b0b782e2e24c99c854e0633e52c5e","ref":"refs/heads/main","pushedAt":"2024-05-06T20:48:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"austin-denoble","name":"Austin DeNoble","path":"/austin-denoble","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/119623786?s=80&v=4"},"commit":{"message":"Optional configs for setting custom headers / metadata for REST / gRPC operations (#18)\n\n## Problem\r\nCurrently, the Go SDK does not support specifying custom headers or\r\nmetadata for control & data plane operations (REST and gRPC). This is a\r\nuseful feature to aid in debugging or tracking a specific request, and\r\nwe'd like to enable this functionality in the Go SDK.\r\n\r\n## Solution\r\n- Update `NewClientParams` and `Client` structs to support `headers`,\r\nalso allow passing a custom `RestClient` to the new client. This is\r\nprimarily for allowing mocking in unit tests, but we have a similar\r\napproach in other clients allowing users to customize the HTTP module.\r\n- Add new `buildClientOptions` function.\r\n- Update `NewClient` to support appending `Headers` and `RestClient` to\r\n`clientOptions`.\r\n- Add error message for empty `ApiKey` without any `Authorization`\r\nheader provided. If the user passes both, avoid applying the `Api-Key`\r\nheader in favor of the `Authorization` header.\r\n- Add new `Client.IndexWithAdditionalMetadata` constructor.\r\n- Update `IndexConnection` struct to include `additionalMetadata`, and\r\nupdate `newIndexConnection` to accept `additionalMetadata` as an\r\nargument.\r\n- Update `IndexConnection.akCtx` to handle appending the `api-key` and\r\nany `additionalMetadata` to requests.\r\n- Update unit tests, add new `mocks` package and `mock_transport` to\r\nfacilitate validating requests made via `Client` including.\r\n\r\nI spent some time trying to figure out how to mock / test\r\n`IndexConnection` but I think it'll be a bit trickier than `Client`, so\r\nsomewhat saving for a future PR atm.\r\n\r\n## Type of Change\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing\r\nfunctionality to not work as expected)\r\n- [ ] This change requires a documentation update\r\n- [ ] Infrastructure change (CI configs, etc)\r\n- [ ] Non-code change (docs, etc)\r\n- [ ] None of the above: (explain here)\r\n\r\n## Test Plan\r\n`just test` to run the test suite locally. Validate tests pass in CI.","shortMessageHtmlLink":"Optional configs for setting custom headers / metadata for REST / gRP…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEaOfOEAA","startCursor":null,"endCursor":null}},"title":"Activity · pinecone-io/go-pinecone"}