/// <summary>Add a build to the build database.</summary> /// <param name="pullRequestNumber">The GitHub pull request number.</param> /// <param name="changeDBPassword">The password</param> public void AddBuild(int pullRequestNumber, string changeDBPassword) { if (changeDBPassword == BuildsClassic.GetValidPassword()) { using (SqlConnection connection = BuildsClassic.Open()) { string sql = "INSERT INTO ApsimX (Date, PullRequestID, IssueNumber, IssueTitle, Released, Version) " + "VALUES (@Date, @PullRequestID, @IssueNumber, @IssueTitle, @Released, @Version)"; PullRequest pull = GitHubUtilities.GetPullRequest(pullRequestNumber, owner, repo); DateTime date = pull.GetTestDate(owner, repo); pull.GetIssueDetails(out int issueNumber, out bool released); string issueTitle = pull.GetIssueTitle(owner, repo); int nextVersion = Convert.ToInt32(GetNextVersion()); using (SqlCommand command = new SqlCommand(sql, connection)) { command.Parameters.Add(new SqlParameter("@Date", date)); command.Parameters.Add(new SqlParameter("@PullRequestID", pullRequestNumber)); command.Parameters.Add(new SqlParameter("@IssueNumber", issueNumber)); command.Parameters.Add(new SqlParameter("@IssueTitle", issueTitle)); command.Parameters.Add(new SqlParameter("@Released", released)); command.Parameters.Add(new SqlParameter("@Version", nextVersion)); command.ExecuteNonQuery(); } } } }
/// <summary> /// Add a new entry to the builds database. /// </summary> public int AddPullRequest(int PullID, int JenkinsID, string Password, string DbConnectPassword) { PullRequest pull = GitHubUtilities.GetPullRequest(PullID, repoOwner, repoName); string author = pull.User.Login; string patchFileName = PullID.ToString(); // Use Pull Request ID as patch file names. string description = pull.Title; int issueId = pull.GetIssueID(); bool doCommit = false; // Legacy option. return(Add(author, Password, patchFileName, description, issueId, doCommit, JenkinsID, PullID, DbConnectPassword)); }
/// <summary> /// Get details about a GitHub pull request ID. Called from Jenkins. /// </summary> /// <param name="pullRequestID"></param> /// <returns>Format of return string is yyyy-MM-dd hh:mm tt,ID</returns> public string GetPullRequestDetails(int pullRequestID) { PullRequest pull = GitHubUtilities.GetPullRequest(pullRequestID, owner, repo); pull.GetIssueDetails(out int issueID, out _); if (issueID <= 0) { throw new Exception("Cannot find issue number in pull request: " + pullRequestID); } return(DateTime.Now.ToString("yyyy.M.d-HH:mm") + "," + issueID); }
/// <summary> /// Gets the ID of the issue referenced by a pull request. /// </summary> /// <param name="pullRequestID">ID of the pull request.</param> public int GetIssueID(int pullRequestID) { PullRequest pull = GitHubUtilities.GetPullRequest(pullRequestID, repoOwner, repoName); return(pull.GetIssueID()); }
public virtual Task <bool> RemoveOutsideCollaborator(string owner, string repositoryName, string user) { var utility = new GitHubUtilities(); return(utility.RemoveCollaborator(owner, repositoryName, user)); }
public virtual Task <Issue> CreateRepositoryIssue(string repositoryName, string title, string body) { var utility = new GitHubUtilities(); return(utility.CreateIssue(repositoryName, title, body)); }