Skip to content

Commit

Permalink
[Breaking Change]: Fix DeploymentStatus IDs Overflowing (#2736)
Browse files Browse the repository at this point in the history
  • Loading branch information
Cyberboss authored Jul 3, 2023
1 parent cada8d1 commit d7fd665
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 2 deletions.
52 changes: 52 additions & 0 deletions Octokit.Tests/Models/DeploymentStatusTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,57 @@ public void CanDeserialize()
Assert.Equal(DateTimeOffset.Parse("2012-07-20T01:19:13Z"), actual.UpdatedAt);
Assert.Equal("Deploy request from hubot", actual.Description);
}

[Fact]
public void CanDeserialize64BitId()
{
const string json = @"{
""url"": ""https://api.github.com/repos/tgstation/TerraGov-Marine-Corps/deployments/965900823/statuses/2151661540"",
""id"": 2151661540,
""node_id"": ""DES_kwDOCXi6sc6AP7_k"",
""state"": ""in_progress"",
""creator"": {
""login"": ""comfyorange"",
""id"": 61334995,
""node_id"": ""MDQ6VXNlcjYxMzM0OTk1"",
""avatar_url"": ""https://avatars.githubusercontent.com/u/61334995?v=4"",
""gravatar_id"": """",
""url"": ""https://api.github.com/users/comfyorange"",
""html_url"": ""https://github.com/comfyorange"",
""followers_url"": ""https://api.github.com/users/comfyorange/followers"",
""following_url"": ""https://api.github.com/users/comfyorange/following{/other_user}"",
""gists_url"": ""https://api.github.com/users/comfyorange/gists{/gist_id}"",
""starred_url"": ""https://api.github.com/users/comfyorange/starred{/owner}{/repo}"",
""subscriptions_url"": ""https://api.github.com/users/comfyorange/subscriptions"",
""organizations_url"": ""https://api.github.com/users/comfyorange/orgs"",
""repos_url"": ""https://api.github.com/users/comfyorange/repos"",
""events_url"": ""https://api.github.com/users/comfyorange/events{/privacy}"",
""received_events_url"": ""https://api.github.com/users/comfyorange/received_events"",
""type"": ""User"",
""site_admin"": false
},
""description"": ""The project is being deployed"",
""environment"": ""TGS: TGMC"",
""target_url"": """",
""created_at"": ""2023-06-29T19:10:55Z"",
""updated_at"": ""2023-06-29T19:10:55Z"",
""deployment_url"": ""https://api.github.com/repos/tgstation/TerraGov-Marine-Corps/deployments/965900823"",
""repository_url"": ""https://api.github.com/repos/tgstation/TerraGov-Marine-Corps"",
""environment_url"": """",
""log_url"": """",
""performed_via_github_app"": null
}";

var actual = new SimpleJsonSerializer().Deserialize<DeploymentStatus>(json);

Assert.Equal(2151661540, actual.Id);
Assert.Equal("https://api.github.com/repos/tgstation/TerraGov-Marine-Corps/deployments/965900823/statuses/2151661540", actual.Url);
Assert.Equal(DeploymentState.InProgress, actual.State);
Assert.Null(actual.Payload);
Assert.Equal(String.Empty, actual.TargetUrl);
Assert.Equal(DateTimeOffset.Parse("2023-06-29T19:10:55Z"), actual.CreatedAt);
Assert.Equal(DateTimeOffset.Parse("2023-06-29T19:10:55Z"), actual.UpdatedAt);
Assert.Equal("The project is being deployed", actual.Description);
}
}
}
4 changes: 2 additions & 2 deletions Octokit/Models/Response/DeploymentStatus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class DeploymentStatus
{
public DeploymentStatus() { }

public DeploymentStatus(int id, string nodeId, string url, DeploymentState state, User creator, IReadOnlyDictionary<string, string> payload, string targetUrl, string logUrl, string environmentUrl, DateTimeOffset createdAt, DateTimeOffset updatedAt, string description)
public DeploymentStatus(long id, string nodeId, string url, DeploymentState state, User creator, IReadOnlyDictionary<string, string> payload, string targetUrl, string logUrl, string environmentUrl, DateTimeOffset createdAt, DateTimeOffset updatedAt, string description)
{
Id = id;
NodeId = nodeId;
Expand All @@ -30,7 +30,7 @@ public DeploymentStatus(int id, string nodeId, string url, DeploymentState state
/// <summary>
/// Id of this deployment status.
/// </summary>
public int Id { get; private set; }
public long Id { get; private set; }

/// <summary>
/// GraphQL Node Id
Expand Down

0 comments on commit d7fd665

Please sign in to comment.