Example #1
0
        /// <summary>
        /// Creates a hook for a organization
        /// </summary>
        /// <param name="org">The organizations name</param>
        /// <param name="hook">The hook's parameters</param>
        /// <remarks>See <a href="http://developer.github.com/v3/orgs/hooks/#create-a-hook">API documentation</a> for more information.</remarks>
        public IObservable <OrganizationHook> Create(string org, NewOrganizationHook hook)
        {
            Ensure.ArgumentNotNullOrEmptyString(org, nameof(org));
            Ensure.ArgumentNotNull(hook, nameof(hook));

            return(_client.Create(org, hook).ToObservable());
        }
Example #2
0
            public async Task CreateAWebHookForTestOrganization()
            {
                var github      = Helper.GetAuthenticatedClient();
                var url         = "http://test.com/example";
                var contentType = OrgWebHookContentType.Json;
                //var secret = "53cr37";
                var config = new Dictionary <string, string>
                {
                    { "url", "http://hostname.url" },
                    { "content_type", "json" }
                };
                var parameters = new NewOrganizationHook("web", config)
                {
                    Events = new[] { "push" },
                    Active = false
                };

                var hook = await github.Organization.Hook.Create(_fixture.org, parameters.ToRequest());

                var baseHookUrl   = CreateExpectedBaseHookUrl(_fixture.org, hook.Id);
                var webHookConfig = CreateExpectedConfigDictionary(config, url, contentType);

                Assert.Equal("web", hook.Name);
                Assert.Equal(new[] { "push" }.ToList(), hook.Events.ToList());
                Assert.Equal(baseHookUrl, hook.Url);
                Assert.Equal(baseHookUrl + "/pings", hook.PingUrl);
                Assert.NotEqual(default, hook.CreatedAt);
Example #3
0
            public void UsesTheSuppliedHook()
            {
                var connection          = Substitute.For <IApiConnection>();
                var client              = new OrganizationsClient(connection);
                var newOrganizationHook = new NewOrganizationHook("name", new Dictionary <string, string> {
                    { "config", "" }
                });

                client.Hook.Create("org", newOrganizationHook);

                connection.Received().Post <OrganizationHook>(Arg.Any <Uri>(), newOrganizationHook);
            }
Example #4
0
            public void RequestsCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new OrganizationsClient(connection);
                var hook       = new NewOrganizationHook("name", new Dictionary <string, string> {
                    { "config", "" }
                });

                client.Hook.Create("org", hook);

                connection.Received().Post <OrganizationHook>(Arg.Is <Uri>(u => u.ToString() == "orgs/org/hooks"), hook);
            }
Example #5
0
            public void RequestsCorrectUrl()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableOrganizationHooksClient(gitHubClient);

                var hook = new NewOrganizationHook("name", new Dictionary <string, string> {
                    { "config", "" }
                });

                client.Create("org", hook);

                gitHubClient.Received().Organization.Hook.Create("org", hook);
            }
        static OrganizationHook CreateHook(IGitHubClient github, string orgFixture, string hookName, string eventName)
        {
            var config = new Dictionary <string, string> {
                { "content_type", "json" }, { "url", "http://test.com/example" }
            };
            var parameters = new NewOrganizationHook(hookName, config)
            {
                Events = new[] { eventName },
                Active = false
            };
            var createdHook = github.Organization.Hook.Create(orgFixture, parameters);

            return(createdHook.Result);
        }