Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用.NET从gitlab钩子获取推送信息_C#_.net_Gitlab - Fatal编程技术网

C# 如何使用.NET从gitlab钩子获取推送信息

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

我需要写一个网站来显示我们团队的推送信息。现在我遇到了一个问题,如何从gitlab获取信息?

推送信息的类型是JSON,您需要做的是向gitlab添加一个URL挂钩,URL是您的API地址。 就像:

然后,单击测试按钮检查API

以下是我的推送事件API:

 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作为参数