Skip to content

Commit 6000d92

Browse files
arlosiTurbo87
authored andcommitted
Add normalize-index admin command
Re-generates the git index by reading existing files, normalizing them and writing them back out again. Does not use the database.
1 parent 20bbac9 commit 6000d92

File tree

38 files changed

+248
-138
lines changed

38 files changed

+248
-138
lines changed

cargo-registry-index/lib.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ pub struct Crate {
116116
#[serde(skip_serializing_if = "Option::is_none")]
117117
pub features2: Option<BTreeMap<String, Vec<String>>>,
118118
pub yanked: Option<bool>,
119-
#[serde(default)]
119+
#[serde(skip_serializing_if = "Option::is_none")]
120120
pub links: Option<String>,
121121
/// The schema version for this entry.
122122
///
@@ -524,7 +524,12 @@ impl Repository {
524524
let output = command.output()?;
525525
if !output.status.success() {
526526
let stderr = String::from_utf8_lossy(&output.stderr);
527-
return Err(anyhow!("Running git command failed with: {}", stderr));
527+
let stdout = String::from_utf8_lossy(&output.stdout);
528+
return Err(anyhow!(
529+
"Running git command failed with: {}{}",
530+
stderr,
531+
stdout
532+
));
528533
}
529534

530535
Ok(())

src/admin/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ pub mod delete_version;
33
pub mod dialoguer;
44
pub mod git_import;
55
pub mod migrate;
6+
pub mod normalize_index;
67
pub mod on_call;
78
pub mod populate;
89
pub mod render_readmes;

src/admin/normalize_index.rs

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
use std::{
2+
fs::File,
3+
io::{BufRead, BufReader},
4+
process::Command,
5+
};
6+
7+
use cargo_registry_index::{Repository, RepositoryConfig};
8+
use chrono::Utc;
9+
use indicatif::{ProgressBar, ProgressIterator, ProgressStyle};
10+
11+
use crate::admin::dialoguer;
12+
13+
#[derive(clap::Parser, Debug, Copy, Clone)]
14+
#[clap(name = "normalize-index", about = "Normalize and squash the git index")]
15+
pub struct Opts {}
16+
17+
pub fn run(_opts: Opts) -> anyhow::Result<()> {
18+
println!("fetching git repo");
19+
let config = RepositoryConfig::from_environment();
20+
let repo = Repository::open(&config)?;
21+
22+
repo.reset_head()?;
23+
println!("please place site in read-only mode now to prevent further commits");
24+
if !dialoguer::confirm("continue?") {
25+
return Ok(());
26+
}
27+
repo.reset_head()?;
28+
println!("HEAD is at {}", repo.head_oid()?);
29+
30+
let files = repo.get_files_modified_since(None)?;
31+
println!("found {} crates", files.len());
32+
let pb = ProgressBar::new(files.len() as u64);
33+
pb.set_style(ProgressStyle::with_template("{bar:60} ({pos}/{len}, ETA {eta})").unwrap());
34+
35+
for file in files.iter().progress_with(pb) {
36+
let crate_name = file.file_name().unwrap().to_str().unwrap();
37+
let path = repo.index_file(crate_name);
38+
if !path.exists() {
39+
continue;
40+
}
41+
42+
let mut body: Vec<u8> = Vec::new();
43+
let file = File::open(&path)?;
44+
let reader = BufReader::new(file);
45+
let mut versions = Vec::new();
46+
for line in reader.lines() {
47+
let mut krate: cargo_registry_index::Crate = serde_json::from_str(&line?)?;
48+
for dep in &mut krate.deps {
49+
// Remove deps with empty features
50+
dep.features.retain(|d| !d.is_empty());
51+
// Set null DependencyKind to Normal
52+
dep.kind = Some(
53+
dep.kind
54+
.unwrap_or(cargo_registry_index::DependencyKind::Normal),
55+
);
56+
}
57+
krate.deps.sort();
58+
versions.push(krate);
59+
}
60+
versions.sort_by_cached_key(|version| semver::Version::parse(&version.vers).ok());
61+
for version in versions {
62+
serde_json::to_writer(&mut body, &version).unwrap();
63+
body.push(b'\n');
64+
}
65+
std::fs::write(path, body)?;
66+
}
67+
68+
let original_head = repo.head_oid()?.to_string();
69+
70+
// Add an additional commit after the squash commit that normalizes the index.
71+
println!("committing normalization");
72+
let msg = "Normalize index format\n\n\
73+
More information can be found at https://github.com/rust-lang/crates.io/pull/5066";
74+
repo.run_command(Command::new("git").args(["commit", "-am", msg]))?;
75+
let snapshot_head = repo.head_oid()?.to_string();
76+
77+
println!("squashing");
78+
let now = Utc::now().format("%Y-%m-%d");
79+
let msg = format!("Collapse index into one commit\n\n\
80+
Previous HEAD was {}, now on the `snapshot-{}` branch\n\n\
81+
More information about this change can be found [online] and on [this issue].\n\n\
82+
[online]: https://internals.rust-lang.org/t/cargos-crate-index-upcoming-squash-into-one-commit/8440\n\
83+
[this issue]: https://github.com/rust-lang/crates-io-cargo-teams/issues/47", snapshot_head, now);
84+
repo.squash_to_single_commit(&msg)?;
85+
86+
if dialoguer::confirm("push to origin?") {
87+
repo.run_command(Command::new("git").args([
88+
"push",
89+
// Both updates should succeed or fail together
90+
"--atomic",
91+
"origin",
92+
// Overwrite master, but only if it server matches the expected value
93+
&format!("--force-with-lease=refs/heads/master:{original_head}"),
94+
// The new squashed commit is pushed to master
95+
"HEAD:refs/heads/master",
96+
// The previous value of HEAD is pushed to a snapshot branch
97+
&format!("{snapshot_head}:refs/heads/snapshot-{now}"),
98+
]))?;
99+
println!("The index has been successfully normalized and squashed.");
100+
}
101+
Ok(())
102+
}

src/bin/crates-admin.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#![warn(clippy::all, rust_2018_idioms)]
22

33
use cargo_registry::admin::{
4-
delete_crate, delete_version, git_import, migrate, populate, render_readmes, test_pagerduty,
5-
transfer_crates, upload_index, verify_token, yank_version,
4+
delete_crate, delete_version, git_import, migrate, normalize_index, populate, render_readmes,
5+
test_pagerduty, transfer_crates, upload_index, verify_token, yank_version,
66
};
77

88
#[derive(clap::Parser, Debug)]
@@ -25,6 +25,7 @@ enum SubCommand {
2525
UploadIndex(upload_index::Opts),
2626
YankVersion(yank_version::Opts),
2727
GitImport(git_import::Opts),
28+
NormalizeIndex(normalize_index::Opts),
2829
}
2930

3031
fn main() -> anyhow::Result<()> {
@@ -49,6 +50,7 @@ fn main() -> anyhow::Result<()> {
4950
SubCommand::UploadIndex(opts) => upload_index::run(opts)?,
5051
SubCommand::YankVersion(opts) => yank_version::run(opts),
5152
SubCommand::GitImport(opts) => git_import::run(opts)?,
53+
SubCommand::NormalizeIndex(opts) => normalize_index::run(opts)?,
5254
}
5355

5456
Ok(())

src/tests/http-data/krate_publish_features_version_2.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"336"
47+
"323"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W3sibmFtZSI6ImJhciIsInJlcSI6Ij4gMCIsImZlYXR1cmVzIjpbXSwib3B0aW9uYWwiOmZhbHNlLCJkZWZhdWx0X2ZlYXR1cmVzIjp0cnVlLCJ0YXJnZXQiOm51bGwsImtpbmQiOiJub3JtYWwifV0sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7Im9sZF9mZWF0IjpbXX0sImZlYXR1cmVzMiI6eyJuZXdfZmVhdCI6WyJkZXA6YmFyIiwiYmFyPy9mZWF0Il19LCJ5YW5rZWQiOmZhbHNlLCJsaW5rcyI6bnVsbCwidiI6Mn0K"
54+
"body": "eyJuYW1lIjoiZm9vIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W3sibmFtZSI6ImJhciIsInJlcSI6Ij4gMCIsImZlYXR1cmVzIjpbXSwib3B0aW9uYWwiOmZhbHNlLCJkZWZhdWx0X2ZlYXR1cmVzIjp0cnVlLCJ0YXJnZXQiOm51bGwsImtpbmQiOiJub3JtYWwifV0sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7Im9sZF9mZWF0IjpbXX0sImZlYXR1cmVzMiI6eyJuZXdfZmVhdCI6WyJkZXA6YmFyIiwiYmFyPy9mZWF0Il19LCJ5YW5rZWQiOmZhbHNlLCJ2IjoyfQo="
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_good_badges.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"163"
47+
"150"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vYmFkZ2VyIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiZm9vYmFkZ2VyIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_good_categories.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"166"
47+
"153"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX2dvb2RfY2F0IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiZm9vX2dvb2RfY2F0IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_good_keywords.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"166"
47+
"153"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX2dvb2Rfa2V5IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiZm9vX2dvb2Rfa2V5IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_ignored_badges.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"171"
47+
"158"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX2lnbm9yZWRfYmFkZ2UiLCJ2ZXJzIjoiMS4wLjAiLCJkZXBzIjpbXSwiY2tzdW0iOiJhY2I1NjA0YjEyNmFjODk0YzFlYjExYzQ1NzViZjIwNzJmZWE2MTIzMmE4ODhlNDUzNzcwYzc5ZDdlZDU2NDE5IiwiZmVhdHVyZXMiOnt9LCJ5YW5rZWQiOmZhbHNlLCJsaW5rcyI6bnVsbH0K"
54+
"body": "eyJuYW1lIjoiZm9vX2lnbm9yZWRfYmFkZ2UiLCJ2ZXJzIjoiMS4wLjAiLCJkZXBzIjpbXSwiY2tzdW0iOiJhY2I1NjA0YjEyNmFjODk0YzFlYjExYzQ1NzViZjIwNzJmZWE2MTIzMmE4ODhlNDUzNzcwYzc5ZDdlZDU2NDE5IiwiZmVhdHVyZXMiOnt9LCJ5YW5rZWQiOmZhbHNlfQo="
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_ignored_categories.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"169"
47+
"156"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX2lnbm9yZWRfY2F0IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiZm9vX2lnbm9yZWRfY2F0IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_new_crate_allow_empty_alternative_registry_dependency.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"272"
47+
"259"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W3sibmFtZSI6ImZvby1kZXAiLCJyZXEiOiI+IDAiLCJmZWF0dXJlcyI6W10sIm9wdGlvbmFsIjpmYWxzZSwiZGVmYXVsdF9mZWF0dXJlcyI6dHJ1ZSwidGFyZ2V0IjpudWxsLCJraW5kIjoibm9ybWFsIn1dLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2UsImxpbmtzIjpudWxsfQo="
54+
"body": "eyJuYW1lIjoiZm9vIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W3sibmFtZSI6ImZvby1kZXAiLCJyZXEiOiI+IDAiLCJmZWF0dXJlcyI6W10sIm9wdGlvbmFsIjpmYWxzZSwiZGVmYXVsdF9mZWF0dXJlcyI6dHJ1ZSwidGFyZ2V0IjpudWxsLCJraW5kIjoibm9ybWFsIn1dLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2V9Cg=="
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_new_krate.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"161"
47+
"148"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX25ldyIsInZlcnMiOiIxLjAuMCIsImRlcHMiOltdLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2UsImxpbmtzIjpudWxsfQo="
54+
"body": "eyJuYW1lIjoiZm9vX25ldyIsInZlcnMiOiIxLjAuMCIsImRlcHMiOltdLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2V9Cg=="
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_new_krate_git_upload.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"157"
47+
"144"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZmd0IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiZmd0IiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_new_krate_git_upload_appends.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"157"
47+
"144"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiRlBQIiwidmVycyI6IjAuMC4xIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiRlBQIiwidmVycyI6IjAuMC4xIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,
@@ -104,14 +104,14 @@
104104
],
105105
[
106106
"content-length",
107-
"314"
107+
"288"
108108
],
109109
[
110110
"content-type",
111111
"text/plain"
112112
]
113113
],
114-
"body": "eyJuYW1lIjoiRlBQIiwidmVycyI6IjAuMC4xIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9CnsibmFtZSI6IkZQUCIsInZlcnMiOiIxLjAuMCIsImRlcHMiOltdLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2UsImxpbmtzIjpudWxsfQo="
114+
"body": "eyJuYW1lIjoiRlBQIiwidmVycyI6IjAuMC4xIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0KeyJuYW1lIjoiRlBQIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
115115
},
116116
"response": {
117117
"status": 200,

src/tests/http-data/krate_publish_new_krate_git_upload_with_conflicts.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"167"
47+
"154"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX2NvbmZsaWN0cyIsInZlcnMiOiIxLjAuMCIsImRlcHMiOltdLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2UsImxpbmtzIjpudWxsfQo="
54+
"body": "eyJuYW1lIjoiZm9vX2NvbmZsaWN0cyIsInZlcnMiOiIxLjAuMCIsImRlcHMiOltdLCJja3N1bSI6ImFjYjU2MDRiMTI2YWM4OTRjMWViMTFjNDU3NWJmMjA3MmZlYTYxMjMyYTg4OGU0NTM3NzBjNzlkN2VkNTY0MTkiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2V9Cg=="
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_new_krate_records_verified_email.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"172"
47+
"159"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX3ZlcmlmaWVkX2VtYWlsIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZSwibGlua3MiOm51bGx9Cg=="
54+
"body": "eyJuYW1lIjoiZm9vX3ZlcmlmaWVkX2VtYWlsIiwidmVycyI6IjEuMC4wIiwiZGVwcyI6W10sImNrc3VtIjoiYWNiNTYwNGIxMjZhYzg5NGMxZWIxMWM0NTc1YmYyMDcyZmVhNjEyMzJhODg4ZTQ1Mzc3MGM3OWQ3ZWQ1NjQxOSIsImZlYXR1cmVzIjp7fSwieWFua2VkIjpmYWxzZX0K"
5555
},
5656
"response": {
5757
"status": 200,

src/tests/http-data/krate_publish_new_krate_too_big_but_whitelisted.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
],
4545
[
4646
"content-length",
47-
"167"
47+
"154"
4848
],
4949
[
5050
"content-type",
5151
"text/plain"
5252
]
5353
],
54-
"body": "eyJuYW1lIjoiZm9vX3doaXRlbGlzdCIsInZlcnMiOiIxLjEuMCIsImRlcHMiOltdLCJja3N1bSI6IjRlMzNkYzU5YmJiYzk2NjQ1ZmMwMTk0NWZiNTAyNTA3ZDFiN2JkM2EyZDA2MjI3YmY3YjBmZTg4NDJmMjg0YzIiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2UsImxpbmtzIjpudWxsfQo="
54+
"body": "eyJuYW1lIjoiZm9vX3doaXRlbGlzdCIsInZlcnMiOiIxLjEuMCIsImRlcHMiOltdLCJja3N1bSI6IjRlMzNkYzU5YmJiYzk2NjQ1ZmMwMTk0NWZiNTAyNTA3ZDFiN2JkM2EyZDA2MjI3YmY3YjBmZTg4NDJmMjg0YzIiLCJmZWF0dXJlcyI6e30sInlhbmtlZCI6ZmFsc2V9Cg=="
5555
},
5656
"response": {
5757
"status": 200,

0 commit comments

Comments
 (0)