예제 #1
0
        public async Task HandleGithubPushEvent(int projectId, PushGithubPayloadDTO payload)
        {
            if (payload?.Ref == null)
            {
                return;
            }

            //When commit is pushed to branch github send payload object with property
            //"refs": "refs/heads/*name of branch*"
            if (!payload.Ref.StartsWith("refs/heads/"))
            {
                return;
            }

            //I parse this property in branch name in the next line:
            var updatedBranch = payload.Ref.Substring(11);

            var triggers = await _projectService.GetProjectRemoteTriggers(projectId);

            var pushTrigger = triggers.FirstOrDefault(t => (t.Type == RemoteTriggerType.Push || t.Type == RemoteTriggerType.All) &&
                                                      t.Branch == updatedBranch);

            if (pushTrigger == null)
            {
                return;
            }

            var rebuild = await _builder.PrepareBuild(projectId, payload.Sender.Login, updatedBranch);

            await _builder.StartBuild(projectId, rebuild.Id, updatedBranch, rebuild.PerformerId);
        }
        public async Task HandleGithubPushEvent(int projectId, PushGithubPayloadDTO payload)
        {
            //When commit is pushed to branch github send payload object with property
            //"refs": "refs/heads/*name of branch*"
            if (!payload.Ref.StartsWith("refs/heads/"))
            {
                return;
            }

            //I parse this property in branch name in the next line:
            var updatedBranch = payload.Ref.Substring(11);

            // TODO: replace fake build history id
            await _builder.StartBuild(projectId, 1);
        }
 public async Task GithubWebhookCallback(int projectId, [FromBody] PushGithubPayloadDTO payload)
 {
     await _handler.HandleGithubPushEvent(projectId, payload);
 }