Skip to content

Commit aaca7a9

Browse files
feat(telemetry): don't report usage data for dev builds (#258)
1 parent 4d450de commit aaca7a9

File tree

3 files changed

+309
-14
lines changed

3 files changed

+309
-14
lines changed

crates/sputnik/src/session.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ impl Session {
110110

111111
/// sends anonymous usage data to the endpoint defined in ReportingInfo.
112112
pub fn report(&self) -> Result<(), SputnikError> {
113-
if self.reporting_info.is_telemetry_enabled {
113+
if self.reporting_info.is_telemetry_enabled && !cfg!(debug_assertions) {
114114
// set timeout to 400 ms to prevent blocking for too long on reporting
115115
let timeout = Duration::from_millis(4000);
116116
let body = serde_json::to_string(&self)?;

installers/npm/package-lock.json

+297-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/utils/telemetry.rs

+11-12
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ use sputnik::{Command, Report, SputnikError};
99
use std::collections::HashMap;
1010

1111
const TELEMETRY_URL: &str = "https://install.apollographql.workers.dev/telemetry";
12+
const ROVER_VERSION: &str = env!("CARGO_PKG_VERSION");
13+
const ROVER_NAME: &str = env!("CARGO_PKG_NAME");
1214

1315
fn get_command_from_args(mut raw_arguments: &mut serde_json::Value) -> Command {
1416
let mut commands = Vec::new();
@@ -96,11 +98,11 @@ impl Report for Rover {
9698
}
9799

98100
fn tool_name(&self) -> String {
99-
env!("CARGO_PKG_NAME").to_string()
101+
ROVER_NAME.to_string()
100102
}
101103

102104
fn version(&self) -> String {
103-
env!("CARGO_PKG_VERSION").to_string()
105+
ROVER_VERSION.to_string()
104106
}
105107

106108
fn machine_id_config(&self) -> Result<PathBuf, SputnikError> {
@@ -124,10 +126,11 @@ mod tests {
124126

125127
use std::collections::HashMap;
126128

129+
use super::ROVER_NAME;
130+
127131
#[test]
128132
fn it_can_serialize_commands() {
129-
let cli_name = env!("CARGO_PKG_NAME");
130-
let args = vec![cli_name, "config", "list"];
133+
let args = vec![ROVER_NAME, "config", "list"];
131134
let rover = Rover::from_iter(args);
132135
let actual_serialized_command = rover
133136
.serialize_command()
@@ -141,8 +144,7 @@ mod tests {
141144

142145
#[test]
143146
fn it_can_serialize_commands_with_arguments() {
144-
let cli_name = env!("CARGO_PKG_NAME");
145-
let args = vec![cli_name, "config", "show", "default", "--sensitive"];
147+
let args = vec![ROVER_NAME, "config", "show", "default", "--sensitive"];
146148
let rover = Rover::from_iter(args);
147149
let actual_serialized_command = rover
148150
.serialize_command()
@@ -159,8 +161,7 @@ mod tests {
159161
#[test]
160162
fn it_respects_apollo_telemetry_url() {
161163
let apollo_telemetry_url = "https://example.com/telemetry";
162-
let cli_name = env!("CARGO_PKG_NAME");
163-
let args = vec![cli_name, "config", "list"];
164+
let args = vec![ROVER_NAME, "config", "list"];
164165
let mut rover = Rover::from_iter(args);
165166
rover
166167
.env_store
@@ -176,8 +177,7 @@ mod tests {
176177

177178
#[test]
178179
fn it_can_be_disabled() {
179-
let cli_name = env!("CARGO_PKG_NAME");
180-
let args = vec![cli_name, "config", "list"];
180+
let args = vec![ROVER_NAME, "config", "list"];
181181
let mut rover = Rover::from_iter(args);
182182
rover.env_store.insert(RoverEnvKey::TelemetryDisabled, "1");
183183
let expect_enabled = false;
@@ -188,8 +188,7 @@ mod tests {
188188

189189
#[test]
190190
fn it_is_enabled_by_default() {
191-
let cli_name = env!("CARGO_PKG_NAME");
192-
let args = vec![cli_name, "config", "list"];
191+
let args = vec![ROVER_NAME, "config", "list"];
193192
let rover = Rover::from_iter(args);
194193
let expect_enabled = true;
195194
let is_telemetry_enabled = rover.is_telemetry_enabled().unwrap();

0 commit comments

Comments
 (0)