如何使用.NET从gitlab挂钩中获取推送信息 [英] how to get push info from gitlab hooks with .NET

查看:104
本文介绍了如何使用.NET从gitlab挂钩中获取推送信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I need to write a website to display our team's push info. Now I meet a problem that how to get info form gitlab?

推荐答案

推送信息的类型为JSON,您需要做的是向gitlab添加URL挂钩,而该URL是您API的地址. 就像:

the type of push infomation is JSON, and what you need to do is to add a URL hook to gitlab,and the url is your API's address. just like:

然后单击测试按钮以检查您的API

and then ,click test button to check you API

以下是我的push_events API:

following is my push_events 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;
        }

这篇关于如何使用.NET从gitlab挂钩中获取推送信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆