Skip to content

Commit 20a7ded

Browse files
committed
Merge branch 'master' of https://github.com/rust-lang/crates.io into reduce-test-allocations
2 parents 9517c3e + f41626e commit 20a7ded

18 files changed

+95
-33
lines changed

.travis.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: rust
22
sudo: required
3-
dist: trusty
3+
dist: xenial
44

55
# Ignore this branch per bors-ng documentation
66
branches:
@@ -24,8 +24,11 @@ env:
2424
# on community-submitted PRs
2525
- PERCY_TOKEN=0d8707a02b19aebbec79bb0bf302b8d2fa95edb33169cfe41b084289596670b1
2626
- PERCY_PROJECT=crates-io/crates.io
27+
- PGPORT=5433
2728

2829
install:
30+
- sudo cp /etc/postgresql/10/main/pg_hba.conf /etc/postgresql/11/main/pg_hba.conf
31+
- sudo systemctl restart postgresql@11-main
2932
- script/ci/cargo-clean-on-new-rustc-version.sh
3033
- cargo install --force diesel_cli --vers `cat .diesel_version` --no-default-features --features postgres && export PATH=$HOME/.cargo/bin:$PATH
3134

@@ -34,7 +37,11 @@ before_script:
3437

3538
addons:
3639
chrome: stable
37-
postgresql: "9.5"
40+
postgresql: "11"
41+
apt:
42+
packages:
43+
- postgresql-11
44+
- postgresql-client-11
3845

3946
matrix:
4047
fast_finish: true

Cargo.lock

Lines changed: 51 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/routes/crate/version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export default Route.extend({
6262
.get('versions')
6363
.then(versions => {
6464
const latestStableVersion = versions.find(version => {
65-
if (!isUnstableVersion(version.get('num'))) {
65+
if (!isUnstableVersion(version.get('num')) && !version.get('yanked')) {
6666
return version;
6767
}
6868
});

app/routes/github-authorize.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Route from '@ember/routing/route';
2-
import ajax from 'ember-fetch/ajax';
2+
import fetch from 'fetch';
33
import { serializeQueryParams } from 'ember-fetch/mixins/adapter-fetch';
44

55
/**
@@ -19,8 +19,9 @@ export default Route.extend({
1919
async beforeModel(transition) {
2020
try {
2121
let queryParams = serializeQueryParams(transition.queryParams);
22-
let d = await ajax(`/authorize?${queryParams}`);
23-
let item = JSON.stringify({ ok: true, data: d });
22+
let resp = await fetch(`/authorize?${queryParams}`);
23+
let json = await resp.json();
24+
let item = JSON.stringify({ ok: resp.ok, data: json });
2425
if (window.opener) {
2526
window.opener.github_response = item;
2627
}

app/routes/login.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@ export default Route.extend({
5353
if (!response) {
5454
return;
5555
}
56-
if (!response.ok) {
57-
this.flashMessages.show('Failed to log in');
58-
return;
59-
}
56+
6057
let { data } = response;
61-
if (data.errors) {
58+
if (data && data.errors) {
6259
let error = `Failed to log in: ${data.errors[0].detail}`;
6360
this.flashMessages.show(error);
6461
return;
62+
} else if (!response.ok) {
63+
this.flashMessages.show('Failed to log in');
64+
return;
6565
}
6666

6767
let user = this.store.push(this.store.normalize('user', data.user));
File renamed without changes.

src/boot/categories.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ description = """
9898
Algorithms intended for securing data.\
9999
"""
100100

101+
[cryptography.categories.cryptocurrencies]
102+
name = "Cryptocurrencies"
103+
description = """
104+
Crates for digital currencies, wallets, and distributed ledgers.\
105+
"""
106+
101107
[database]
102108
name = "Database interfaces"
103109
description = """
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

src/controllers/user/session.rs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ use rand::distributions::Alphanumeric;
66
use rand::{thread_rng, Rng};
77

88
use crate::models::{NewUser, User};
9+
use crate::schema::users;
10+
use crate::util::errors::{CargoError, ReadOnlyMode};
911

1012
/// Handles the `GET /authorize_url` route.
1113
///
@@ -111,16 +113,30 @@ struct GithubUser {
111113
}
112114

113115
impl GithubUser {
114-
fn save_to_database(&self, access_token: &str, conn: &PgConnection) -> QueryResult<User> {
115-
Ok(NewUser::new(
116+
fn save_to_database(&self, access_token: &str, conn: &PgConnection) -> CargoResult<User> {
117+
NewUser::new(
116118
self.id,
117119
&self.login,
118120
self.email.as_ref().map(|s| &s[..]),
119121
self.name.as_ref().map(|s| &s[..]),
120122
self.avatar_url.as_ref().map(|s| &s[..]),
121123
access_token,
122124
)
123-
.create_or_update(conn)?)
125+
.create_or_update(conn)
126+
.map_err(Into::into)
127+
.or_else(|e: Box<dyn CargoError>| {
128+
// If we're in read only mode, we can't update their details
129+
// just look for an existing user
130+
if e.is::<ReadOnlyMode>() {
131+
users::table
132+
.filter(users::gh_id.eq(self.id))
133+
.first(conn)
134+
.optional()?
135+
.ok_or(e)
136+
} else {
137+
Err(e)
138+
}
139+
})
124140
}
125141
}
126142

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)