C# 如何使用.NET从gitlab钩子获取推送信息
我需要写一个网站来显示我们团队的推送信息。现在我遇到了一个问题,如何从gitlab获取信息?推送信息的类型是JSON,您需要做的是向gitlab添加一个URL挂钩,URL是您的API地址。 就像: 然后,单击测试按钮检查API 以下是我的推送事件API:C# 如何使用.NET从gitlab钩子获取推送信息,c#,.net,gitlab,C#,.net,Gitlab,我需要写一个网站来显示我们团队的推送信息。现在我遇到了一个问题,如何从gitlab获取信息?推送信息的类型是JSON,您需要做的是向gitlab添加一个URL挂钩,URL是您的API地址。 就像: 然后,单击测试按钮检查API 以下是我的推送事件API: public int PushEventInfo([FromBody]PushEvent push) { bool flag = true; ProjectController project = n
public int PushEventInfo([FromBody]PushEvent push)
{
bool flag = true;
ProjectController project = new ProjectController();
List<string> projectName = new List<string>();
try
{
SqlConnection conn = connectLocaldb.ConnectDataBase();
conn.Open();
string sql = "INSERT INTO MemberCommitBeforeCompiling(Username,ProjectName,Version,GroupName,CommitTime,Branch) VALUES ('" + push.user_name + "','" + push.project.name + "','" + push.after + "','" + groupname + "',getdate(),'" + push.@ref + "') ";
SqlCommand cmd = new SqlCommand(sql, conn);
int result = cmd.ExecuteNonQuery();
//判断项目是否已存在
IList<Project> namelist = project.GetAllProjectInfo();
foreach(var i in namelist)
{
//如果MemberProject表中已经存在该项目
if (i.projectName.Contains(push.project.name)|| push.project.name.Contains(i.projectName))
flag = false;
}
if (flag==true)
{
sql = "INSERT INTO MemberProject(ProjectName,CommitTime,isdelete) VALUES ('" + push.project.name + "',getdate(),'0') ";
cmd = new SqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
conn.Close();
return result;
}
catch (Exception e)
{
FileStream fs = new FileStream("c:\\test\\log.txt", FileMode.Append, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs); // 创建写入流
sw.WriteLine(e.ToString()); // 写入
sw.Close();
return 0;
}
public int PushEventInfo([FromBody]PushEvent push)
{
布尔标志=真;
ProjectController项目=新的ProjectController();
List projectName=新列表();
尝试
{
SqlConnection conn=connectLocaldb.ConnectDataBase();
conn.Open();
string sql=“在重新编译(用户名、项目名、版本、组名、提交时间、分支)之前,将值(“+push.user_name+”、“+push.project.name+”、“+push.after+”、“+GroupName+”、getdate()、“+push.@ref+”)”;
SqlCommand cmd=新的SqlCommand(sql,conn);
int result=cmd.ExecuteNonQuery();
//判断项目是否已存在
IList namelist=project.GetAllProjectInfo();
foreach(名称列表中的变量i)
{
//如果会员项目表中已经存在该项目
if(i.projectName.Contains(push.project.name)| push.project.name.Contains(i.projectName))
flag=false;
}
如果(标志==真)
{
sql=“插入MemberProject(ProjectName、CommitTime、isdelete)值(“+push.project.name+”,getdate(),“0”);
cmd=新的SqlCommand(sql,conn);
结果=cmd.ExecuteNonQuery();
}
康涅狄格州关闭();
返回结果;
}
捕获(例外e)
{
FileStream fs=newfilestream(“c:\\test\\log.txt”,FileMode.Append,FileAccess.Write);
StreamWriter sw=新StreamWriter(fs);//创建写入流
sw.WriteLine(如ToString());//写入
sw.Close();
返回0;
}
add push json info as model classI仍然不知道API发生了什么当push hook被触发时,它将调用您的API并添加json作为参数