{"action":"closed","number":5,"pull_request":{"url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/5","id":121453662,"html_url":"https://github.com/infOpen/ansible-role-fail2ban/pull/5","diff_url":"https://github.com/infOpen/ansible-role-fail2ban/pull/5.diff","patch_url":"https://github.com/infOpen/ansible-role-fail2ban/pull/5.patch","issue_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/5","number":5,"state":"closed","locked":false,"title":"Initial Update","user":{"login":"pyup-bot","id":16239342,"avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"body":"\nThis is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge. \n\n*Close this pull request and delete the branch if you want me to start with single pull requests right away*\n\nHere's the executive summary:\n\n## Updates\nHere's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.\n<table align=\"center\">\n\n<tr>\n<td><b>ansible</b></td>\n<td align=\"center\">2.1</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">2.3.0.0</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/ansible\">PyPI</a> | <a href=\"https://pyup.io/changelogs/ansible/\">Changelog</a> | <a href=\"http://github.com/ansible/ansible/\">Repo</a> | <a href=\"https://ansible.com/\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>paramiko</b></td>\n<td align=\"center\">2.0.2</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">2.1.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/paramiko\">PyPI</a> | <a href=\"https://pyup.io/changelogs/paramiko/\">Changelog</a> | <a href=\"https://github.com/paramiko/paramiko/\">Repo</a> \n\n</td>\n\n<tr>\n<td><b>pytest</b></td>\n<td align=\"center\">2.9.2</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">3.0.7</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/pytest\">PyPI</a> | <a href=\"https://pyup.io/changelogs/pytest/\">Changelog</a> | <a href=\"https://github.com/pytest-dev/pytest/issues\">Repo</a> | <a href=\"http://pytest.org\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>testinfra</b></td>\n<td align=\"center\">1.4.5</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">1.6.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/testinfra\">PyPI</a> | <a href=\"https://pyup.io/changelogs/testinfra/\">Changelog</a> | <a href=\"http://github.com/philpep/testinfra\">Repo</a> \n\n</td>\n\n</tr>\n</table>\n\n\n\n## Changelogs\n\n\n### ansible 2.1 -> 2.3.0.0\n\n>### 2.3\n\n\n> Major Changes\n>* Documented and renamed the previously released &#39;single var vaulting&#39; feature, allowing user to use vault encryption for single variables in a normal YAML vars file.\n>* Allow module_utils for custom modules to be placed in site-specific directories and shipped in roles\n>* On platforms that support it, use more modern system polling API instead of select in the ssh connection plugin.\n>  This removes one limitation on how many parallel forks are feasible on these systems.\n>* Windows/WinRM supports (experimental) become method &quot;runas&quot; to run modules and scripts as a different user, and to transparently access network resources.\n>* The WinRM connection plugin now uses pipelining when executing modules, resulting in significantly faster execution for small tasks.\n>* The WinRM connection plugin can now manage Kerberos tickets automatically when `ansible_winrm_transport=kerberos` and `ansible_user`/`ansible_password` are specified.\n>* Refactored/standardized most Windows modules, adding check-mode and diff support where possible.\n>* Extended Windows module API with parameter-type support, helper functions. (i.e. Expand-Environment, Add-Warning, Add-DeprecatationWarning)\n>* restructured how async works to allow it to apply to action plugins that choose to support it.\n\n> Minor Changes\n>* The version and release facts for OpenBSD hosts were reversed.\n>  This has been changed so that version has the numeric portion and release has the name of the release.\n>* removed &#39;package&#39; from default squash actions as not all package managers support it and it creates errors when using loops,\n>  any user can add back via config options if they don&#39;t use those package managers or otherwise avoid the errors.\n>* Blocks can now have a `name` field, to aid in playbook readability.\n>* default strategy is now configurable via ansible.cfg or environment variable.\n>* Added &#39;ansible_playbook_python&#39; which contains &#39;current python executable&#39;, it can be blank in some cases in which Ansible is not invoked via the standard CLI (sys.executable limitation).\n>* Added &#39;metadata&#39; to modules to enable classification\n>* ansible-doc now displays path to module and existing &#39;metadata&#39;\n>* added optional &#39;piped&#39; transfer method to ssh plugin for when scp and sftp are missing, ssh plugin is also now &#39;smarter&#39; when using these options\n>* default controlpersist path is now a custom hash of host-port-user to avoid the socket path length errors for long hostnames\n>* Various fixes for Python3 compatibility\n>* Fixed issues with inventory formats not handling &#39;all&#39; and &#39;ungrouped&#39; in an uniform way.\n>* &#39;service&#39; tasks can now use async again, we had lost this capability when changed into an action plugin.\n>* made any_errors_fatal inheritable from play to task and all other objects in between.\n>* many small performance improvements in inventory and variable handling and in task execution.\n\n> Deprecations\n>* Specifying --tags (or --skip-tags) multiple times on the command line\n>  currently leads to the last one overriding all the previous ones. This behaviour is deprecated.\n>  In the future, if you specify --tags multiple times the tags will be merged together.\n>  From now on, using --tags multiple times on one command line will emit a deprecation warning.\n>  Setting the merge_multiple_cli_tags option to True in the ansible.cfg file will enable the new behaviour.\n>  In 2.4, the default will be to merge and you can enable the old overwriting behaviour via the config option.\n>  In 2.5, multiple --tags options will be merged with no way to go back to the old behaviour.\n\n>* Modules (scheduled for removal in 2.5)\n>  * ec2_vpc\n>  * cl_bond\n>  * cl_bridge\n>  * cl_img_install\n>  * cl_interface\n>  * cl_interface_policy\n>  * cl_license\n>  * cl_ports\n>  * nxos_mtu, use nxos_system instead\n\n> New: Callbacks\n\n>- dense: minimal stdout output with fallback to default when verbose\n\n> New: lookups\n\n>- keyring: allows getting password from the &#39;controller&#39; system&#39;s keyrings\n\n> New: cache\n\n>- pickle (uses python&#39;s own serializer)\n>- yaml\n\n> New: inventory scripts\n>- oVirt/RHV\n\n> New: filters\n>- combinations\n>- permutations\n>- zip\n>- zip_longest\n\n\n> Module Notes\n>- AWS lambda: previously ignored changes that only affected one parameter. Existing deployments may have outstanding changes that this bugfix will apply.\n>- oVirt/RHV: Added support for 4.1 features and the following:\n>  * data centers, clusters, hosts, storage domains and networks management.\n>  * hosts and virtual machines affinity groups and labels.\n>  * users, groups and permissions management.\n>  * Improved virtual machines and disks management.\n>- Mount: Some fixes so bind mounts are not mounted each time the playbook runs.\n\n> New Modules\n>- a10_server_axapi3\n>- amazon:\n>  * aws_kms\n>  * cloudfront_facts\n>  * ec2_group_facts\n>  * ec2_lc_facts\n>  * ec2_vpc_igw_facts\n>  * ec2_vpc_nat_gateway_facts\n>  * ec2_vpc_vgw_facts\n>  * ecs_ecr\n>  * elasticache_parameter_group\n>  * elasticache_snapshot\n>  * iam_role\n>  * s3_sync\n>- archive\n>- beadm\n>- bigswitch:\n>  * bigmon_chain\n>  * bigmon_policy\n>- cisco\n>  * cisco_spark\n>- cloudengine:\n>  * ce_command\n>- cloudscale_server\n>- cloudstack:\n>  * cs_host\n>  * cs_nic\n>  * cs_region\n>  * cs_role\n>  * cs_vpc\n>- dimensiondata_network\n>- eos:\n>  * eos_banner\n>  * eos_system\n>  * eos_user\n>- f5:\n>  * bigip_gtm_facts\n>  * bigip_hostname\n>  * bigip_snat_pool\n>  * bigip_sys_global\n>- foreman:\n>  * foreman\n>  * katello\n>- fortios\n>  * fortios_config\n>- gconftool2\n>- google:\n>  * gce_eip\n>  * gce_snapshot\n>  * gcpubsub\n>  * gcpubsub_facts\n>- hpilo:\n>  * hpilo_boot\n>  * hpilo_facts\n>  * hponcfg\n>- icinga2_feature\n>- illumos:\n>  * dladm_iptun\n>  * dladm_linkprop\n>  * dladm_vlan\n>  * ipadm_addr\n>  * ipadm_addrprop\n>  * ipadm_ifprop\n>- infinidat:\n>  * infini_export\n>  * infini_export_client\n>  * infini_fs\n>  * infini_host\n>  * infini_pool\n>  * infini_vol\n>- ipa:\n>  * ipa_group\n>  * ipa_hbacrule\n>  * ipa_host\n>  * ipa_hostgroup\n>  * ipa_role\n>  * ipa_sudocmd\n>  * ipa_sudocmdgroup\n>  * ipa_sudorule\n>  * ipa_user\n>- ipinfoio_facts\n>- ios:\n>  * ios_banner\n>  * ios_system\n>  * ios_vrf\n>- iosxr_system\n>- iso_extract\n>- java_cert\n>- jenkins_script\n>- ldap:\n>  * ldap_attr\n>  * ldap_entry\n>- logstash_plugin\n>- mattermost\n>- net_command\n>- netapp:\n>  * sf_account_manager\n>  * sf_snapshot_schedule_manager\n>  * sf_volume_manager\n>  * sf_volume_access_group_manager\n>- nginx_status_facts\n>- nsupdate\n>- omapi_host\n>- openssl:\n>  * openssl_privatekey\n>  * openssl_publickey\n>- openstack:\n>  * os_nova_host_aggregate\n>  * os_quota\n>- openwrt_init\n>- ordnance:\n>  * ordnance_config\n>  * ordnance_facts\n>- ovirt:\n>  * ovirt_affinity_groups\n>  * ovirt_affinity_labels\n>  * ovirt_affinity_labels_facts\n>  * ovirt_clusters\n>  * ovirt_clusters_facts\n>  * ovirt_datacenters\n>  * ovirt_datacenters_facts\n>  * ovirt_external_providers\n>  * ovirt_external_providers_facts\n>  * ovirt_groups\n>  * ovirt_groups_facts\n>  * ovirt_host_networks\n>  * ovirt_host_pm\n>  * ovirt_hosts\n>  * ovirt_hosts_facts\n>  * ovirt_mac_pools\n>  * ovirt_networks\n>  * ovirt_networks_facts\n>  * ovirt_nics\n>  * ovirt_nics_facts\n>  * ovirt_permissions\n>  * ovirt_permissions_facts\n>  * ovirt_quotas\n>  * ovirt_quotas_facts\n>  * ovirt_snapshots\n>  * ovirt_snapshots_facts\n>  * ovirt_storage_domains\n>  * ovirt_storage_domains_facts\n>  * ovirt_tags\n>  * ovirt_tags_facts\n>  * ovirt_templates\n>  * ovirt_templates_facts\n>  * ovirt_users\n>  * ovirt_users_facts\n>  * ovirt_vmpools\n>  * ovirt_vmpools_facts\n>  * ovirt_vms_facts\n>- pacemaker_cluster\n>- packet:\n>  * packet_device\n>  * packet_sshkey\n>- pamd\n>- panos:\n>  * panos_address\n>  * panos_admin\n>  * panos_admpwd\n>  * panos_cert_gen_ssh\n>  * panos_check\n>  * panos_commit\n>  * panos_dag\n>  * panos_import\n>  * panos_interface\n>  * panos_lic\n>  * panos_loadcfg\n>  * panos_mgtconfig\n>  * panos_nat_policy\n>  * panos_pg\n>  * panos_restart\n>  * panos_security_policy\n>  * panos_service\n>- postgresql_schema\n>- proxmox_kvm\n>- pubnub_blocks\n>- pulp_repo\n>- runit\n>- serverless\n>- set_stats\n>- panos:\n>  * panos_security_policy\n>- smartos:\n>  * imgadm\n>  * vmadm\n>- sorcery\n>- stacki_host\n>- swupd\n>- tempfile\n>- tower:\n>  * tower_credential\n>  * tower_group\n>  * tower_host\n>  * tower_inventory\n>  * tower_job_template\n>  * tower_label\n>  * tower_organization\n>  * tower_project\n>  * tower_role\n>  * tower_team\n>  * tower_user\n>- vmware:\n>  * vmware_guest_facts\n>  * vmware_guest_snapshot\n>- web_infrastructure:\n>  * jenkins_script\n>- system\n>  * parted\n>- windows:\n>  * win_disk_image\n>  * win_dns_client\n>  * win_domain\n>  * win_domain_controller\n>  * win_domain_membership\n>  * win_find\n>  * win_msg\n>  * win_path\n>  * win_psexec\n>  * win_reg_stat\n>  * win_region\n>  * win_say\n>  * win_shortcut\n>  * win_tempfile\n>- xbps\n>- zfs:\n>  * zfs_facts\n>  * zpool_facts\n\n\n\n\n>### 2.3.0\n\n\n\n>### 2.2.1\n\n\n> Major Changes\n\n>* Security fix for CVE-2016-9587 - An attacker with control over a client system being managed by Ansible and the ability to send facts back to the Ansible server could use this flaw to execute arbitrary code on the Ansible server as the user and group Ansible is running as.\n\n> Minor Changes\n\n>* Fixes a bug where undefined variables in with_* loops would cause a task failure even if the when condition would cause the task to be skipped.\n>* Fixed a bug related to roles where in certain situations a role may be run more than once despite not allowing duplicates.\n>* Fixed some additional bugs related to atomic_move for modules.\n>* Fixes multiple bugs related to field/attribute inheritance in nested blocks and includes, as well as task iteration logic during failures.\n>* Fixed pip installing packages into virtualenvs using the system pip instead of the virtualenv pip.\n>* Fixed dnf on systems with dnf-2.0.x (some changes in the API).\n>* Fixed traceback with dnf install of groups.\n>* Fixes a bug in which include_vars was not working with failed_when.\n>* Fix for include_vars only loading files with .yml, .yaml, and .json extensions.  This was only supposed to apply to loading a directory of vars files.\n>* Fixes several bugs related to properly incrementing the failed count in the host statistics.\n>* Fixes a bug with listening handlers which did not specify a `name` field.\n>* Fixes a bug with the `play_hosts` internal variable, so that it properly reflects the current list of hosts.\n>* Fixes a bug related to the v2_playbook_on_start callback method and legacy (v1) plugins.\n>* Fixes an openssh related process exit race condition, related to the fact that connections using ControlPersist do not close stderr.\n>* Improvements and fixes to OpenBSD fact gathering.\n>* Updated `make deb` to use pbuilder. Use `make local_deb` for the previous non-pbuilder build.\n>* Fixed Windows async to avoid blocking due to handle inheritance.\n>* Fixed bugs in the mount module on older Linux kernels and *BSDs\n>* Various minor fixes for Python 3\n>* Inserted some checks for jinja2-2.9, which can cause some issues with Ansible currently.\n\n\n\n\n>### 2.2\n\n\n> Major Changes:\n\n>* Added the `listen` feature for modules. This feature allows tasks to more easily notify multiple handlers, as well as making it easier for handlers from decoupled roles to be notified.\n>* Major performance improvements.\n>* Added support for binary modules\n>* Added the ability to specify serial batches as a list (`serial: [1, 5, 10]`), which allows for so-called &quot;canary&quot; actions in one play.\n>* Fixed &#39;local type&#39; plugins and actions to have a more predictable relative path. Fixes a regression of 1.9 (PR 16805). Existing users of 2.x will need to adjust related tasks.\n>* `meta` tasks can now use conditionals.\n>* `raw` now returns `changed: true` to be consistent with shell/command/script modules. Add `changed_when: false` to `raw` tasks to restore the pre-2.2 behavior if necessary.\n>* New privilege escalation become method `ksu`\n>* Windows `async:` support for long-running or background tasks.\n>* Windows `environment:` support for setting module environment vars in play/task.\n>* Added a new `meta` option: `end_play`, which can be used to skip to the end of a play.\n>* roles can now be included in the middle of a task list via the new `include_role` module, this also allows for making the role import &#39;loopable&#39; and/or conditional.\n>* The service module has been changed to use system specific modules if they exist and fall back to the old service module if they cannot be found or detected.\n>* Add ability to specify what ssh client binary to use on the controller.  This\n>  can be configured via ssh_executable in the ansible config file or by setting\n>  ansible_ssh_executable as an inventory variable if different ones are needed\n>  for different hosts.\n>* Windows:\n>  * several facts were modified or renamed for consistency with their Unix counterparts, and many new facts were added. If your playbooks rely on any of the following keys, please ensure they are using the correct key names and/or values:\n>    - ansible_date_time.date (changed to use yyyy-mm-dd format instead of default system-locale format)\n>    - ansible_date_time.iso8601 (changed to UTC instead of local time)\n>    - ansible_distribution (now uses OS caption string, e.g.: &quot;Microsoft Windows Server 2012 R2 Standard&quot;, version is still available on ansible_distribution_version)\n>    - ansible_totalmem (renamed to ansible_memtotal_mb, units changed to MB instead of bytes)\n>  * `async:` support for long-running or background tasks.\n>  * `environment:` support for setting module environment vars in play/task.\n>* Tech Preview: Work has been done to get Ansible running under Python3.  This work is not complete enough to depend upon in production environments but it is enough to begin testing it.\n>  * Most of the controller side should now work.  Users should be able to run python3 /usr/bin/ansible and python3 /usr/bin/ansible-playbook and have core features of ansible work.\n>  * A few of the most essential modules have been audited and are known to work.  Others work out of the box.\n>  * We are using unit and integration tests to help us port code and not regress later.  Even if you are not familiar with python you can still help by contributing integration tests (just ansible roles) that exercise more of the code to make sure it continues to run on both Python2 and Python3.\n>  * scp_if_ssh now supports True, False and &quot;smart&quot;. &quot;smart&quot; is the default and will retry failed sftp transfers with scp.\n>* Network:\n>  * Refactored all network modules to remove duplicate code and take advantage of Ansiballz implementation\n>  * All functionality from *_template network modules have been combined into *_config module\n>  * Network *_command modules not longer allow configuration mode statements\n\n> New Modules\n>- apache2_mod_proxy\n>- asa\n>  * asa_acl\n>  * asa_command\n>  * asa_config\n>- atomic\n>  * atomic_host\n>  * atomic_image\n>- aws\n>  * cloudformation_facts\n>  * ec2_asg_facts\n>  * ec2_customer_gateway\n>  * ec2_lc_find\n>  * ec2_vpc_dhcp_options_facts\n>  * ec2_vpc_nacl\n>  * ec2_vpc_nacl_facts\n>  * ec2_vpc_nat_gateway\n>  * ec2_vpc_peer\n>  * ec2_vpc_vgw\n>  * efs\n>  * efs_facts\n>  * execute_lambda\n>  * iam_mfa_device_facts\n>  * iam_server_certificate_facts\n>  * kinesis_stream\n>  * lambda\n>  * lambda_alias\n>  * lambda_event\n>  * lambda_facts\n>  * redshift\n>  * redshift_subnet_group\n>  * s3_website\n>  * sts_session_token\n>- cloudstack\n>  * cs_router\n>  * cs_snapshot_policy\n>- dellos6\n>  * dellos6_command\n>  * dellos6_config\n>  * dellos6_facts\n>- dellos9\n>  * dellos9_command\n>  * dellos9_config\n>  * dellos9_facts\n>- dellos10\n>  * dellos10_command\n>  * dellos10_config\n>  * dellos10_facts\n>- digital_ocean_block_storage\n>- docker\n>  * docker_network\n>- eos\n>  * eos_facts\n>- exoscale:\n>  * exo_dns_domain\n>  * exo_dns_record\n>- f5:\n>  * bigip_device_dns\n>  * bigip_device_ntp\n>  * bigip_device_sshd\n>  * bigip_gtm_datacenter\n>  * bigip_gtm_virtual_server\n>  * bigip_irule\n>  * bigip_routedomain\n>  * bigip_selfip\n>  * bigip_ssl_certificate\n>  * bigip_sys_db\n>  * bigip_vlan\n>- github\n>  * github_key\n>  * github_release\n>- google\n>  * gcdns_record\n>  * gcdns_zone\n>  * gce_mig\n>- honeybadger_deployment\n>- illumos\n>  * dladm_etherstub\n>  * dladm_vnic\n>  * flowadm\n>  * ipadm_if\n>  * ipadm_prop\n>- ipmi\n>  * ipmi_boot\n>  * ipmi_power\n>- ios\n>  * ios_facts\n>- iosxr\n>  * iosxr_facts\n>- include_role\n>- jenkins\n>  * jenkins_job\n>  * jenkins_plugin\n>- kibana_plugin\n>- letsencrypt\n>- logicmonitor\n>- logicmonitor_facts\n>- lxd\n>  * lxd_profile\n>  * lxd_container\n>- netapp\n>  * netapp_e_amg\n>  * netapp_e_amg_role\n>  * netapp_e_amg_sync\n>  * netapp_e_auth\n>  * netapp_e_facts\n>  * netapp_e_flashcache\n>  * netapp_e_hostgroup\n>  * netapp_e_host\n>  * netapp_e_lun_mapping\n>  * netapp_e_snapshot_group\n>  * netapp_e_snapshot_images\n>  * netapp_e_snapshot_volume\n>  * netapp_e_storage_system\n>  * netapp_e_storagepool\n>  * netapp_e_volume\n>  * netapp_e_volume_copy\n>- netconf_config\n>- netvisor\n>  * pn_cluster\n>  * pn_ospfarea\n>  * pn_ospf\n>  * pn_show\n>  * pn_trunk\n>  * pn_vlag\n>  * pn_vlan\n>  * pn_vrouterbgp\n>  * pn_vrouterif\n>  * pn_vrouterlbif\n>  * pn_vrouter\n>- nxos\n>  * nxos_aaa_server_host\n>  * nxos_aaa_server\n>  * nxos_acl_interface\n>  * nxos_acl\n>  * nxos_bgp_af\n>  * nxos_bgp_neighbor_af\n>  * nxos_bgp_neighbor\n>  * nxos_bgp\n>  * nxos_evpn_global\n>  * nxos_evpn_vni\n>  * nxos_file_copy\n>  * nxos_gir_profile_management\n>  * nxos_gir\n>  * nxos_hsrp\n>  * nxos_igmp_interface\n>  * nxos_igmp\n>  * nxos_igmp_snooping\n>  * nxos_install_os\n>  * nxos_interface_ospf\n>  * nxos_mtu\n>  * nxos_ntp_auth\n>  * nxos_ntp_options\n>  * nxos_ntp\n>  * nxos_ospf\n>  * nxos_ospf_vrf\n>  * nxos_overlay_global\n>  * nxos_pim_interface\n>  * nxos_pim\n>  * nxos_pim_rp_address\n>  * nxos_portchannel\n>  * nxos_rollback\n>  * nxos_smu\n>  * nxos_snapshot\n>  * nxos_snmp_community\n>  * nxos_snmp_contact\n>  * nxos_snmp_host\n>  * nxos_snmp_location\n>  * nxos_snmp_traps\n>  * nxos_snmp_user\n>  * nxos_static_route\n>  * nxos_udld_interface\n>  * nxos_udld\n>  * nxos_vpc_interface\n>  * nxos_vpc\n>  * nxos_vrf_af\n>  * nxos_vtp_domain\n>  * nxos_vtp_password\n>  * nxos_vtp_version\n>  * nxos_vxlan_vtep\n>  * nxos_vxlan_vtep_vni\n>- mssql_db\n>- ovh_ip_loadbalancing_backend\n>- opendj_backendprop\n>- openstack\n>  * os_keystone_service\n>  * os_recordset\n>  * os_server_group\n>  * os_stack\n>  * os_zone\n>- ovirt\n>  * ovirt_auth\n>  * ovirt_disks\n>  * ovirt_vms\n>- rhevm\n>- rocketchat\n>- sefcontext\n>- sensu_subscription\n>- smartos\n>  * smartos_image_facts\n>- sros\n>  * sros_command\n>  * sros_config\n>  * sros_rollback\n>- statusio_maintenance\n>- systemd\n>- telegram\n>- univention\n>  * udm_dns_record\n>  * udm_dns_zone\n>  * udm_group\n>  * udm_share\n>  * udm_user\n>- vmware\n>  * vmware_guest\n>  * vmware_local_user_manager\n>  * vmware_vmotion\n>- vyos\n>  * vyos_command\n>  * vyos_config\n>  * vyos_facts\n>- wakeonlan\n>- windows\n>  * win_command\n>  * win_robocopy\n>  * win_shell\n\n> New Callbacks\n>* foreman\n\n> Minor Changes\n>* now -vvv shows exact path from which &#39;currently executing module&#39; was picked up from.\n>* loop_control now has a label option to allow fine grained control what gets displayed per item\n>* loop_control now has a pause option to allow pausing for N seconds between loop iterations of a task.\n>* New privilege escalation become method `ksu`\n>* `raw` now returns `changed: true` to be consistent with shell/command/script modules. Add `changed_when: false` to `raw` tasks to restore the pre-2.2 behavior if necessary.\n>* removed previously deprecated &#39;;&#39; as host list separator.\n>* Only check if the default ssh client supports ControlPersist once instead of once for each host + task combination.\n>* Fix a problem with the pip module updating the python pip package itself.\n>* ansible_play_hosts is a new magic variable to provide a list of hosts in scope for the current play. Unlike play_hosts it is not subject to the &#39;serial&#39; keyword.\n>* ansible_play_batch is a new magic variable meant to substitute the current play_hosts.\n\n> For custom front ends using the API\n>* ansible.parsing.vault:\n>  * VaultLib.is_encrypted() has been deprecated.  It will be removed in 2.4.\n>    Use ansible.parsing.vault.is_encrypted() instead\n>  * VaultFile has been removed. This unfinished code was never used inside of\n>    Ansible.  The feature it was intended to support has now been implemented\n>    without using this.\n>  * VaultAES, the older, insecure encrypted format that debuted in Ansible-1.5\n>    and was replaced by VaultAES256 less than a week later, now has a deprecation\n>    warning.  **It will be removed in 2.3**.  In the unlikely event that you\n>    wrote a vault file in that 1 week window and have never modified the file\n>    since (ansible-vault automatically re-encrypts the file using VaultAES256\n>    whenever it is written to but not read), run ``ansible-vault rekey\n>    [filename]`` to move to VaultAES256.\n\n> Removed Deprecated\n>* &#39;;&#39; as host list separator.\n>* with\\_ &#39;bare variable&#39; handling, now loop items must always be templated `{{ }}` or they will be considered as plain strings.\n>* skipping task on &#39;missing attribute&#39; in loop variable, now in a loop an undefined attribute will return an error instead of skipping the task.\n>* skipping on undefined variables in loop, now loops will have to define a variable or use `|default` to avoid errors.\n\n> Deprecations\n>Notice given that the following will be removed in Ansible 2.4:\n>* Modules\n>  * eos_template\n>  * ios_template\n>  * iosxr_template\n>  * junos_template\n>  * nxos_template\n>  * ops_template\n\n\n\n>### 2.2.0\n\n\n\n>### 2.1.4\n\n\n>* Security fix for CVE-2016-9587 - An attacker with control over a client system being managed by Ansible and the ability to send facts back to the Ansible server could use this flaw to execute arbitrary code on the Ansible server as the user and group Ansible is running as.\n>* Fixed a bug with conditionals in loops, where undefined variables and other errors will defer raising the error until the conditional has been evaluated.\n>* Added a version check for jinja2-2.9, which does not fully work with Ansible currently.\n\n\n\n>### 2.1.3\n\n\n\n>### 2.1.2\n\n\n\n>### 2.1.1\n\n\n\n\n\n\n\n### pytest 2.9.2 -> 3.0.7\n\n>### 3.0.7\n\n>==================\n\n\n>* Fix issue in assertion rewriting breaking due to modules silently discarding\n>  other modules when importing fails\n>  Notably, importing the ``anydbm`` module is fixed. (`2248`_).\n>  Thanks `pfhayes`_ for the PR.\n\n>* junitxml: Fix problematic case where system-out tag occured twice per testcase\n>  element in the XML report. Thanks `kkoukiou`_ for the PR.\n\n>* Fix regression, pytest now skips unittest correctly if run with ``--pdb``\n>  (`2137`_). Thanks to `gst`_ for the report and `mbyt`_ for the PR.\n\n>* Ignore exceptions raised from descriptors (e.g. properties) during Python test collection (`2234`_).\n>  Thanks to `bluetech`_.\n>  \n>* ``--override-ini`` now correctly overrides some fundamental options like ``python_files`` (`2238`_).\n>  Thanks `sirex`_ for the report and `nicoddemus`_ for the PR.\n\n>* Replace ``raise StopIteration`` usages in the code by simple ``returns`` to finish generators, in accordance to `PEP-479`_ (`2160`_).\n>  Thanks `tgoodlet`_ for the report and `nicoddemus`_ for the PR.\n>  \n>* Fix internal errors when an unprintable ``AssertionError`` is raised inside a test.\n>  Thanks `omerhadari`_ for the PR.\n\n>* Skipping plugin now also works with test items generated by custom collectors (`2231`_).\n>  Thanks to `vidartf`_.\n\n>* Fix trailing whitespace in console output if no .ini file presented (`2281`_). Thanks `fbjorn`_ for the PR.\n\n>* Conditionless ``xfail`` markers no longer rely on the underlying test item\n>  being an instance of ``PyobjMixin``, and can therefore apply to tests not\n>  collected by the built-in python test collector. Thanks `barneygale`_ for the\n>  PR.\n\n\n>.. _pfhayes: https://github.com/pfhayes\n>.. _bluetech: https://github.com/bluetech\n>.. _gst: https://github.com/gst\n>.. _sirex: https://github.com/sirex\n>.. _vidartf: https://github.com/vidartf\n>.. _kkoukiou: https://github.com/KKoukiou\n>.. _omerhadari: https://github.com/omerhadari\n>.. _fbjorn: https://github.com/fbjorn\n\n>.. _2248: https://github.com/pytest-dev/pytest/issues/2248\n>.. _2137: https://github.com/pytest-dev/pytest/issues/2137\n>.. _2160: https://github.com/pytest-dev/pytest/issues/2160\n>.. _2231: https://github.com/pytest-dev/pytest/issues/2231\n>.. _2234: https://github.com/pytest-dev/pytest/issues/2234\n>.. _2238: https://github.com/pytest-dev/pytest/issues/2238\n>.. _2281: https://github.com/pytest-dev/pytest/issues/2281\n\n>.. _PEP-479: https://www.python.org/dev/peps/pep-0479/\n\n\n\n\n>### 3.0.6\n\n>==================\n\n>* pytest no longer generates ``PendingDeprecationWarning`` from its own operations, which was introduced by mistake in version ``3.0.5`` (`2118`_).\n>  Thanks to `nicoddemus`_ for the report and `RonnyPfannschmidt`_ for the PR.\n\n\n>* pytest no longer recognizes coroutine functions as yield tests (`2129`_).\n>  Thanks to `malinoff`_ for the PR.\n\n>* Plugins loaded by the ``PYTEST_PLUGINS`` environment variable are now automatically\n>  considered for assertion rewriting (`2185`_).\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Improve error message when pytest.warns fails (`2150`_). The type(s) of the\n>  expected warnings and the list of caught warnings is added to the\n>  error message. Thanks `lesteve`_ for the PR.\n\n>* Fix ``pytester`` internal plugin to work correctly with latest versions of\n>  ``zope.interface`` (`1989`_). Thanks `nicoddemus`_ for the PR.\n\n>* Assert statements of the ``pytester`` plugin again benefit from assertion rewriting (`1920`_).\n>  Thanks `RonnyPfannschmidt`_ for the report and `nicoddemus`_ for the PR.\n\n>* Specifying tests with colons like ``test_foo.py::test_bar`` for tests in\n>  subdirectories with ini configuration files now uses the correct ini file\n>  (`2148`_).  Thanks `pelme`_.\n\n>* Fail ``testdir.runpytest().assert_outcomes()`` explicitly if the pytest\n>  terminal output it relies on is missing. Thanks to `eli-b`_ for the PR.\n\n\n>.. _barneygale: https://github.com/barneygale\n>.. _lesteve: https://github.com/lesteve\n>.. _malinoff: https://github.com/malinoff\n>.. _pelme: https://github.com/pelme\n>.. _eli-b: https://github.com/eli-b\n\n>.. _2118: https://github.com/pytest-dev/pytest/issues/2118\n\n>.. _1989: https://github.com/pytest-dev/pytest/issues/1989\n>.. _1920: https://github.com/pytest-dev/pytest/issues/1920\n>.. _2129: https://github.com/pytest-dev/pytest/issues/2129\n>.. _2148: https://github.com/pytest-dev/pytest/issues/2148\n>.. _2150: https://github.com/pytest-dev/pytest/issues/2150\n>.. _2185: https://github.com/pytest-dev/pytest/issues/2185\n\n\n\n\n>### 3.0.5\n\n>==================\n\n>* Add warning when not passing ``option=value`` correctly to ``-o/--override-ini`` (`2105`_).\n>  Also improved the help documentation. Thanks to `mbukatov`_ for the report and\n>  `lwm`_ for the PR.\n\n>* Now ``--confcutdir`` and ``--junit-xml`` are properly validated if they are directories\n>  and filenames, respectively (`2089`_ and `2078`_). Thanks to `lwm`_ for the PR.\n\n>* Add hint to error message hinting possible missing ``__init__.py`` (`478`_). Thanks `DuncanBetts`_.\n\n>* More accurately describe when fixture finalization occurs in documentation (`687`_). Thanks `DuncanBetts`_.\n\n>* Provide ``:ref:`` targets for ``recwarn.rst`` so we can use intersphinx referencing.\n>  Thanks to `dupuy`_ for the report and `lwm`_ for the PR.\n\n>* In Python 2, use a simple ``+-`` ASCII string in the string representation of ``pytest.approx`` (for example ``&quot;4 +- 4.0e-06&quot;``)\n>  because it is brittle to handle that in different contexts and representations internally in pytest\n>  which can result in bugs such as `2111`_. In Python 3, the representation still uses ``±`` (for example ``4 ± 4.0e-06``).\n>  Thanks `kerrick-lyft`_ for the report and `nicoddemus`_ for the PR.\n\n>* Using ``item.Function``, ``item.Module``, etc., is now issuing deprecation warnings, prefer\n>  ``pytest.Function``, ``pytest.Module``, etc., instead (`2034`_).\n>  Thanks `nmundar`_ for the PR.\n\n>* Fix error message using ``approx`` with complex numbers (`2082`_).\n>  Thanks `adler-j`_ for the report and `nicoddemus`_ for the PR.\n\n>* Fixed false-positives warnings from assertion rewrite hook for modules imported more than\n>  once by the ``pytest_plugins`` mechanism.\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Remove an internal cache which could cause hooks from ``conftest.py`` files in\n>  sub-directories to be called in other directories incorrectly (`2016`_).\n>  Thanks `d-b-w`_ for the report and `nicoddemus`_ for the PR.\n\n>* Remove internal code meant to support earlier Python 3 versions that produced the side effect\n>  of leaving ``None`` in ``sys.modules`` when expressions were evaluated by pytest (for example passing a condition\n>  as a string to ``pytest.mark.skipif``)(`2103`_).\n>  Thanks `jaraco`_ for the report and `nicoddemus`_ for the PR.\n\n>* Cope gracefully with a .pyc file with no matching .py file (`2038`_). Thanks\n>  `nedbat`_.\n\n>.. _adler-j: https://github.com/adler-j\n>.. _d-b-w: https://bitbucket.org/d-b-w/\n>.. _DuncanBetts: https://github.com/DuncanBetts\n>.. _dupuy: https://bitbucket.org/dupuy/\n>.. _kerrick-lyft: https://github.com/kerrick-lyft\n>.. _lwm: https://github.com/lwm\n>.. _mbukatov: https://github.com/mbukatov\n>.. _nedbat: https://github.com/nedbat\n>.. _nmundar: https://github.com/nmundar\n\n>.. _2016: https://github.com/pytest-dev/pytest/issues/2016\n>.. _2034: https://github.com/pytest-dev/pytest/issues/2034\n>.. _2038: https://github.com/pytest-dev/pytest/issues/2038\n>.. _2078: https://github.com/pytest-dev/pytest/issues/2078\n>.. _2082: https://github.com/pytest-dev/pytest/issues/2082\n>.. _2089: https://github.com/pytest-dev/pytest/issues/2089\n>.. _2103: https://github.com/pytest-dev/pytest/issues/2103\n>.. _2105: https://github.com/pytest-dev/pytest/issues/2105\n>.. _2111: https://github.com/pytest-dev/pytest/issues/2111\n>.. _478: https://github.com/pytest-dev/pytest/issues/478\n>.. _687: https://github.com/pytest-dev/pytest/issues/687\n\n\n\n\n>### 3.0.4\n\n>==================\n\n>* Import errors when collecting test modules now display the full traceback (`1976`_).\n>  Thanks `cwitty`_ for the report and `nicoddemus`_ for the PR.\n\n>* Fix confusing command-line help message for custom options with two or more ``metavar`` properties (`2004`_).\n>  Thanks `okulynyak`_ and `davehunt`_ for the report and `nicoddemus`_ for the PR.\n\n>* When loading plugins, import errors which contain non-ascii messages are now properly handled in Python 2 (`1998`_).\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Fixed cyclic reference when ``pytest.raises`` is used in context-manager form (`1965`_). Also as a\n>  result of this fix, ``sys.exc_info()`` is left empty in both context-manager and function call usages.\n>  Previously, ``sys.exc_info`` would contain the exception caught by the context manager,\n>  even when the expected exception occurred.\n>  Thanks `MSeifert04`_ for the report and the PR.\n\n>* Fixed false-positives warnings from assertion rewrite hook for modules that were rewritten but\n>  were later marked explicitly by ``pytest.register_assert_rewrite``\n>  or implicitly as a plugin (`2005`_).\n>  Thanks `RonnyPfannschmidt`_ for the report and `nicoddemus`_ for the PR.\n\n>* Report teardown output on test failure (`442`_).\n>  Thanks `matclab`_ for the PR.\n\n>* Fix teardown error message in generated xUnit XML.\n>  Thanks `gdyuldin`_ for the PR.\n\n>* Properly handle exceptions in ``multiprocessing`` tasks (`1984`_).\n>  Thanks `adborden`_ for the report and `nicoddemus`_ for the PR.\n\n>* Clean up unittest TestCase objects after tests are complete (`1649`_).\n>  Thanks `d_b_w`_ for the report and PR.\n\n\n>.. _adborden: https://github.com/adborden\n>.. _cwitty: https://github.com/cwitty\n>.. _d_b_w: https://github.com/d_b_w\n>.. _gdyuldin: https://github.com/gdyuldin\n>.. _matclab: https://github.com/matclab\n>.. _MSeifert04: https://github.com/MSeifert04\n>.. _okulynyak: https://github.com/okulynyak\n\n>.. _442: https://github.com/pytest-dev/pytest/issues/442\n>.. _1965: https://github.com/pytest-dev/pytest/issues/1965\n>.. _1976: https://github.com/pytest-dev/pytest/issues/1976\n>.. _1984: https://github.com/pytest-dev/pytest/issues/1984\n>.. _1998: https://github.com/pytest-dev/pytest/issues/1998\n>.. _2004: https://github.com/pytest-dev/pytest/issues/2004\n>.. _2005: https://github.com/pytest-dev/pytest/issues/2005\n>.. _1649: https://github.com/pytest-dev/pytest/issues/1649\n\n\n\n\n>### 3.0.3\n\n>==================\n\n>* The ``ids`` argument to ``parametrize`` again accepts ``unicode`` strings\n>  in Python 2 (`1905`_).\n>  Thanks `philpep`_ for the report and `nicoddemus`_ for the PR.\n\n>* Assertions are now being rewritten for plugins in development mode\n>  (``pip install -e``) (`1934`_).\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Fix pkg_resources import error in Jython projects (`1853`_).\n>  Thanks `raquel-ucl`_ for the PR.\n\n>* Got rid of ``AttributeError: &#39;Module&#39; object has no attribute &#39;_obj&#39;`` exception\n>  in Python 3 (`1944`_).\n>  Thanks `axil`_ for the PR.\n\n>* Explain a bad scope value passed to ``fixture`` declarations or\n>  a ``MetaFunc.parametrize()`` call. Thanks `tgoodlet`_ for the PR.\n\n>* This version includes ``pluggy-0.4.0``, which correctly handles\n>  ``VersionConflict`` errors in plugins (`704`_).\n>  Thanks `nicoddemus`_ for the PR.\n\n\n>.. _philpep: https://github.com/philpep\n>.. _raquel-ucl: https://github.com/raquel-ucl\n>.. _axil: https://github.com/axil\n>.. _tgoodlet: https://github.com/tgoodlet\n\n>.. _1853: https://github.com/pytest-dev/pytest/issues/1853\n>.. _1905: https://github.com/pytest-dev/pytest/issues/1905\n>.. _1934: https://github.com/pytest-dev/pytest/issues/1934\n>.. _1944: https://github.com/pytest-dev/pytest/issues/1944\n>.. _704: https://github.com/pytest-dev/pytest/issues/704\n\n\n\n\n\n\n>### 3.0.2\n\n>==================\n\n>* Improve error message when passing non-string ids to ``pytest.mark.parametrize`` (`1857`_).\n>  Thanks `okken`_ for the report and `nicoddemus`_ for the PR.\n\n>* Add ``buffer`` attribute to stdin stub class ``pytest.capture.DontReadFromInput``\n>  Thanks `joguSD`_ for the PR.\n\n>* Fix ``UnicodeEncodeError`` when string comparison with unicode has failed. (`1864`_)\n>  Thanks `AiOO`_ for the PR.\n\n>* ``pytest_plugins`` is now handled correctly if defined as a string (as opposed as\n>  a sequence of strings) when modules are considered for assertion rewriting.\n>  Due to this bug, much more modules were being rewritten than necessary\n>  if a test suite uses ``pytest_plugins`` to load internal plugins (`1888`_).\n>  Thanks `jaraco`_ for the report and `nicoddemus`_ for the PR (`1891`_).\n\n>* Do not call tearDown and cleanups when running tests from\n>  ``unittest.TestCase`` subclasses with ``--pdb``\n>  enabled. This allows proper post mortem debugging for all applications\n>  which have significant logic in their tearDown machinery (`1890`_). Thanks\n>  `mbyt`_ for the PR.\n\n>* Fix use of deprecated ``getfuncargvalue`` method in the internal doctest plugin.\n>  Thanks `ViviCoder`_ for the report (`1898`_).\n\n>.. _joguSD: https://github.com/joguSD\n>.. _AiOO: https://github.com/AiOO\n>.. _mbyt: https://github.com/mbyt\n>.. _ViviCoder: https://github.com/ViviCoder\n\n>.. _1857: https://github.com/pytest-dev/pytest/issues/1857\n>.. _1864: https://github.com/pytest-dev/pytest/issues/1864\n>.. _1888: https://github.com/pytest-dev/pytest/issues/1888\n>.. _1891: https://github.com/pytest-dev/pytest/pull/1891\n>.. _1890: https://github.com/pytest-dev/pytest/issues/1890\n>.. _1898: https://github.com/pytest-dev/pytest/issues/1898\n\n\n\n\n>### 3.0.1\n\n>==================\n\n>* Fix regression when ``importorskip`` is used at module level (`1822`_).\n>  Thanks `jaraco`_ and `The-Compiler`_ for the report and `nicoddemus`_ for the PR.\n\n>* Fix parametrization scope when session fixtures are used in conjunction\n>  with normal parameters in the same call (`1832`_).\n>  Thanks `The-Compiler`_ for the report, `Kingdread`_ and `nicoddemus`_ for the PR.\n\n>* Fix internal error when parametrizing tests or fixtures using an empty ``ids`` argument (`1849`_).\n>  Thanks `OPpuolitaival`_ for the report and `nicoddemus`_ for the PR.\n\n>* Fix loader error when running ``pytest`` embedded in a zipfile.\n>  Thanks `mbachry`_ for the PR.\n\n\n>.. _Kingdread: https://github.com/Kingdread\n>.. _mbachry: https://github.com/mbachry\n>.. _OPpuolitaival: https://github.com/OPpuolitaival\n\n>.. _1822: https://github.com/pytest-dev/pytest/issues/1822\n>.. _1832: https://github.com/pytest-dev/pytest/issues/1832\n>.. _1849: https://github.com/pytest-dev/pytest/issues/1849\n\n\n\n\n>### 3.0.0\n\n>==================\n\n>**Incompatible changes**\n\n\n>A number of incompatible changes were made in this release, with the intent of removing features deprecated for a long\n>time or change existing behaviors in order to make them less surprising/more useful.\n\n>* Reinterpretation mode has now been removed.  Only plain and rewrite\n>  mode are available, consequently the ``--assert=reinterp`` option is\n>  no longer available.  This also means files imported from plugins or\n>  ``conftest.py`` will not benefit from improved assertions by\n>  default, you should use ``pytest.register_assert_rewrite()`` to\n>  explicitly turn on assertion rewriting for those files.  Thanks\n>  `flub`_ for the PR.\n\n>* The following deprecated commandline options were removed:\n\n>  * ``--genscript``: no longer supported;\n>  * ``--no-assert``: use ``--assert=plain`` instead;\n>  * ``--nomagic``: use ``--assert=plain`` instead;\n>  * ``--report``: use ``-r`` instead;\n\n>  Thanks to `RedBeardCode`_ for the PR (`1664`_).\n\n>* ImportErrors in plugins now are a fatal error instead of issuing a\n>  pytest warning (`1479`_). Thanks to `The-Compiler`_ for the PR.\n\n>* Removed support code for Python 3 versions &lt; 3.3 (`1627`_).\n\n>* Removed all ``py.test-X*`` entry points. The versioned, suffixed entry points\n>  were never documented and a leftover from a pre-virtualenv era. These entry\n>  points also created broken entry points in wheels, so removing them also\n>  removes a source of confusion for users (`1632`_).\n>  Thanks `obestwalter`_ for the PR.\n\n>* ``pytest.skip()`` now raises an error when used to decorate a test function,\n>  as opposed to its original intent (to imperatively skip a test inside a test function). Previously\n>  this usage would cause the entire module to be skipped (`607`_).\n>  Thanks `omarkohl`_ for the complete PR (`1519`_).\n\n>* Exit tests if a collection error occurs. A poll indicated most users will hit CTRL-C\n>  anyway as soon as they see collection errors, so pytest might as well make that the default behavior (`1421`_).\n>  A ``--continue-on-collection-errors`` option has been added to restore the previous behaviour.\n>  Thanks `olegpidsadnyi`_ and `omarkohl`_ for the complete PR (`1628`_).\n\n>* Renamed the pytest ``pdb`` module (plugin) into ``debugging`` to avoid clashes with the builtin ``pdb`` module.\n\n>* Raise a helpful failure message when requesting a parametrized fixture at runtime,\n>  e.g. with ``request.getfixturevalue``. Previously these parameters were simply\n>  never defined, so a fixture decorated like ``pytest.fixture(params=[0, 1, 2])``\n>  only ran once (`460`_).\n>  Thanks to `nikratio`_ for the bug report, `RedBeardCode`_ and `tomviner`_ for the PR.\n\n>* ``_pytest.monkeypatch.monkeypatch`` class has been renamed to ``_pytest.monkeypatch.MonkeyPatch``\n>  so it doesn&#39;t conflict with the ``monkeypatch`` fixture.\n\n>* ``--exitfirst / -x`` can now be overridden by a following ``--maxfail=N``\n>  and is just a synonym for ``--maxfail=1``.\n\n\n>**New Features**\n\n>* Support nose-style ``__test__`` attribute on methods of classes,\n>  including unittest-style Classes. If set to ``False``, the test will not be\n>  collected.\n\n>* New ``doctest_namespace`` fixture for injecting names into the\n>  namespace in which doctests run.\n>  Thanks `milliams`_ for the complete PR (`1428`_).\n\n>* New ``--doctest-report`` option available to change the output format of diffs\n>  when running (failing) doctests (implements `1749`_).\n>  Thanks `hartym`_ for the PR.\n\n>* New ``name`` argument to ``pytest.fixture`` decorator which allows a custom name\n>  for a fixture (to solve the funcarg-shadowing-fixture problem).\n>  Thanks `novas0x2a`_ for the complete PR (`1444`_).\n\n>* New ``approx()`` function for easily comparing floating-point numbers in\n>  tests.\n>  Thanks `kalekundert`_ for the complete PR (`1441`_).\n\n>* Ability to add global properties in the final xunit output file by accessing\n>  the internal ``junitxml`` plugin (experimental).\n>  Thanks `tareqalayan`_ for the complete PR `1454`_).\n\n>* New ``ExceptionInfo.match()`` method to match a regular expression on the\n>  string representation of an exception (`372`_).\n>  Thanks `omarkohl`_ for the complete PR (`1502`_).\n\n>* ``__tracebackhide__`` can now also be set to a callable which then can decide\n>  whether to filter the traceback based on the ``ExceptionInfo`` object passed\n>  to it. Thanks `The-Compiler`_ for the complete PR (`1526`_).\n\n>* New ``pytest_make_parametrize_id(config, val)`` hook which can be used by plugins to provide\n>  friendly strings for custom types.\n>  Thanks `palaviv`_ for the PR.\n\n>* ``capsys`` and ``capfd`` now have a ``disabled()`` context-manager method, which\n>  can be used to temporarily disable capture within a test.\n>  Thanks `nicoddemus`_ for the PR.\n\n>* New cli flag ``--fixtures-per-test``: shows which fixtures are being used\n>  for each selected test item. Features doc strings of fixtures by default.\n>  Can also show where fixtures are defined if combined with ``-v``.\n>  Thanks `hackebrot`_ for the PR.\n\n>* Introduce ``pytest`` command as recommended entry point. Note that ``py.test``\n>  still works and is not scheduled for removal. Closes proposal\n>  `1629`_. Thanks `obestwalter`_ and `davehunt`_ for the complete PR\n>  (`1633`_).\n\n>* New cli flags:\n\n>  + ``--setup-plan``: performs normal collection and reports\n>    the potential setup and teardown and does not execute any fixtures and tests;\n>  + ``--setup-only``: performs normal collection, executes setup and teardown of\n>    fixtures and reports them;\n>  + ``--setup-show``: performs normal test execution and additionally shows\n>    setup and teardown of fixtures;\n>  + ``--keep-duplicates``: py.test now ignores duplicated paths given in the command\n>    line. To retain the previous behavior where the same test could be run multiple\n>    times by specifying it in the command-line multiple times, pass the ``--keep-duplicates``\n>    argument (`1609`_);\n\n>  Thanks `d6e`_, `kvas-it`_, `sallner`_, `ioggstream`_ and `omarkohl`_ for the PRs.\n\n>* New CLI flag ``--override-ini``/``-o``: overrides values from the ini file.\n>  For example: ``&quot;-o xfail_strict=True&quot;``&#39;.\n>  Thanks `blueyed`_ and `fengxx`_ for the PR.\n\n>* New hooks:\n\n>  + ``pytest_fixture_setup(fixturedef, request)``: executes fixture setup;\n>  + ``pytest_fixture_post_finalizer(fixturedef)``: called after the fixture&#39;s\n>    finalizer and has access to the fixture&#39;s result cache.\n\n>  Thanks `d6e`_, `sallner`_.\n\n>* Issue warnings for asserts whose test is a tuple literal. Such asserts will\n>  never fail because tuples are always truthy and are usually a mistake\n>  (see `1562`_). Thanks `kvas-it`_, for the PR.\n\n>* Allow passing a custom debugger class (e.g. ``--pdbcls=IPython.core.debugger:Pdb``).\n>  Thanks to `anntzer`_ for the PR.\n\n\n>**Changes**\n\n>* Plugins now benefit from assertion rewriting.  Thanks\n>  `sober7`_, `nicoddemus`_ and `flub`_ for the PR.\n\n>* Change ``report.outcome`` for ``xpassed`` tests to ``&quot;passed&quot;`` in non-strict\n>  mode and ``&quot;failed&quot;`` in strict mode. Thanks to `hackebrot`_ for the PR\n>  (`1795`_) and `gprasad84`_ for report (`1546`_).\n\n>* Tests marked with ``xfail(strict=False)`` (the default) now appear in\n>  JUnitXML reports as passing tests instead of skipped.\n>  Thanks to `hackebrot`_ for the PR (`1795`_).\n\n>* Highlight path of the file location in the error report to make it easier to copy/paste.\n>  Thanks `suzaku`_ for the PR (`1778`_).\n\n>* Fixtures marked with ``pytest.fixture`` can now use ``yield`` statements exactly like\n>  those marked with the ``pytest.yield_fixture`` decorator. This change renders\n>  ``pytest.yield_fixture`` deprecated and makes ``pytest.fixture`` with ``yield`` statements\n>  the preferred way to write teardown code (`1461`_).\n>  Thanks `csaftoiu`_ for bringing this to attention and `nicoddemus`_ for the PR.\n\n>* Explicitly passed parametrize ids do not get escaped to ascii (`1351`_).\n>  Thanks `ceridwen`_ for the PR.\n\n>* Fixtures are now sorted in the error message displayed when an unknown\n>  fixture is declared in a test function.\n>  Thanks `nicoddemus`_ for the PR.\n\n>* ``pytest_terminal_summary`` hook now receives the ``exitstatus``\n>  of the test session as argument. Thanks `blueyed`_ for the PR (`1809`_).\n\n>* Parametrize ids can accept ``None`` as specific test id, in which case the\n>  automatically generated id for that argument will be used.\n>  Thanks `palaviv`_ for the complete PR (`1468`_).\n\n>* The parameter to xunit-style setup/teardown methods (``setup_method``,\n>  ``setup_module``, etc.) is now optional and may be omitted.\n>  Thanks `okken`_ for bringing this to attention and `nicoddemus`_ for the PR.\n\n>* Improved automatic id generation selection in case of duplicate ids in\n>  parametrize.\n>  Thanks `palaviv`_ for the complete PR (`1474`_).\n\n>* Now pytest warnings summary is shown up by default. Added a new flag\n>  ``--disable-pytest-warnings`` to explicitly disable the warnings summary (`1668`_).\n\n>* Make ImportError during collection more explicit by reminding\n>  the user to check the name of the test module/package(s) (`1426`_).\n>  Thanks `omarkohl`_ for the complete PR (`1520`_).\n\n>* Add ``build/`` and ``dist/`` to the default ``--norecursedirs`` list. Thanks\n>  `mikofski`_ for the report and `tomviner`_ for the PR (`1544`_).\n\n>* ``pytest.raises`` in the context manager form accepts a custom\n>  ``message`` to raise when no exception occurred.\n>  Thanks `palaviv`_ for the complete PR (`1616`_).\n\n>* ``conftest.py`` files now benefit from assertion rewriting; previously it\n>  was only available for test modules. Thanks `flub`_, `sober7`_ and\n>  `nicoddemus`_ for the PR (`1619`_).\n\n>* Text documents without any doctests no longer appear as &quot;skipped&quot;.\n>  Thanks `graingert`_ for reporting and providing a full PR (`1580`_).\n\n>* Ensure that a module within a namespace package can be found when it\n>  is specified on the command line together with the ``--pyargs``\n>  option.  Thanks to `taschini`_ for the PR (`1597`_).\n\n>* Always include full assertion explanation during assertion rewriting. The previous behaviour was hiding\n>  sub-expressions that happened to be ``False``, assuming this was redundant information.\n>  Thanks `bagerard`_ for reporting (`1503`_). Thanks to `davehunt`_ and\n>  `tomviner`_ for the PR.\n\n>* ``OptionGroup.addoption()`` now checks if option names were already\n>  added before, to make it easier to track down issues like `1618`_.\n>  Before, you only got exceptions later from ``argparse`` library,\n>  giving no clue about the actual reason for double-added options.\n\n>* ``yield``-based tests are considered deprecated and will be removed in pytest-4.0.\n>  Thanks `nicoddemus`_ for the PR.\n\n>* ``[pytest]`` sections in ``setup.cfg`` files should now be named ``[tool:pytest]``\n>  to avoid conflicts with other distutils commands (see `567`_). ``[pytest]`` sections in\n>  ``pytest.ini`` or ``tox.ini`` files are supported and unchanged.\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Using ``pytest_funcarg__`` prefix to declare fixtures is considered deprecated and will be\n>  removed in pytest-4.0 (`1684`_).\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Passing a command-line string to ``pytest.main()`` is considered deprecated and scheduled\n>  for removal in pytest-4.0. It is recommended to pass a list of arguments instead (`1723`_).\n\n>* Rename ``getfuncargvalue`` to ``getfixturevalue``. ``getfuncargvalue`` is\n>  still present but is now considered deprecated. Thanks to `RedBeardCode`_ and `tomviner`_\n>  for the PR (`1626`_).\n\n>* ``optparse`` type usage now triggers DeprecationWarnings (`1740`_).\n\n\n>* ``optparse`` backward compatibility supports float/complex types (`457`_).\n\n>* Refined logic for determining the ``rootdir``, considering only valid\n>  paths which fixes a number of issues: `1594`_, `1435`_ and `1471`_.\n>  Updated the documentation according to current behavior. Thanks to\n>  `blueyed`_, `davehunt`_ and `matthiasha`_ for the PR.\n\n>* Always include full assertion explanation. The previous behaviour was hiding\n>  sub-expressions that happened to be False, assuming this was redundant information.\n>  Thanks `bagerard`_ for reporting (`1503`_). Thanks to `davehunt`_ and\n>  `tomviner`_ for PR.\n\n>* Better message in case of not using parametrized variable (see `1539`_).\n>  Thanks to `tramwaj29`_ for the PR.\n\n>* Updated docstrings with a more uniform style.\n\n>* Add stderr write for ``pytest.exit(msg)`` during startup. Previously the message was never shown.\n>  Thanks `BeyondEvil`_ for reporting `1210`_. Thanks to `JonathonSonesen`_ and\n>  `tomviner`_ for the PR.\n\n>* No longer display the incorrect test deselection reason (`1372`_).\n>  Thanks `ronnypfannschmidt`_ for the PR.\n\n>* The ``--resultlog`` command line option has been deprecated: it is little used\n>  and there are more modern and better alternatives (see `830`_).\n>  Thanks `nicoddemus`_ for the PR.\n\n>* Improve error message with fixture lookup errors: add an &#39;E&#39; to the first\n>  line and &#39;&gt;&#39; to the rest. Fixes `717`_. Thanks `blueyed`_ for reporting and\n>  a PR, `eolo999`_ for the initial PR and `tomviner`_ for his guidance during\n>  EuroPython2016 sprint.\n\n\n>**Bug Fixes**\n\n>* Parametrize now correctly handles duplicated test ids.\n\n>* Fix internal error issue when the ``method`` argument is missing for\n>  ``teardown_method()`` (`1605`_).\n\n>* Fix exception visualization in case the current working directory (CWD) gets\n>  deleted during testing (`1235`_). Thanks `bukzor`_ for reporting. PR by\n>  `marscher`_.\n\n>* Improve test output for logical expression with brackets (`925`_).\n>  Thanks `DRMacIver`_ for reporting and `RedBeardCode`_ for the PR.\n\n>* Create correct diff for strings ending with newlines (`1553`_).\n>  Thanks `Vogtinator`_ for reporting and `RedBeardCode`_ and\n>  `tomviner`_ for the PR.\n\n>* ``ConftestImportFailure`` now shows the traceback making it easier to\n>  identify bugs in ``conftest.py`` files (`1516`_). Thanks `txomon`_ for\n>  the PR.\n\n>* Text documents without any doctests no longer appear as &quot;skipped&quot;.\n>  Thanks `graingert`_ for reporting and providing a full PR (`1580`_).\n\n>* Fixed collection of classes with custom ``__new__`` method.\n>  Fixes `1579`_. Thanks to `Stranger6667`_ for the PR.\n\n>* Fixed scope overriding inside metafunc.parametrize (`634`_).\n>  Thanks to `Stranger6667`_ for the PR.\n\n>* Fixed the total tests tally in junit xml output (`1798`_).\n>  Thanks to `cryporchild`_ for the PR.\n\n>* Fixed off-by-one error with lines from ``request.node.warn``.\n>  Thanks to `blueyed`_ for the PR.\n\n\n>.. _1210: https://github.com/pytest-dev/pytest/issues/1210\n>.. _1235: https://github.com/pytest-dev/pytest/issues/1235\n>.. _1351: https://github.com/pytest-dev/pytest/issues/1351\n>.. _1372: https://github.com/pytest-dev/pytest/issues/1372\n>.. _1421: https://github.com/pytest-dev/pytest/issues/1421\n>.. _1426: https://github.com/pytest-dev/pytest/issues/1426\n>.. _1428: https://github.com/pytest-dev/pytest/pull/1428\n>.. _1435: https://github.com/pytest-dev/pytest/issues/1435\n>.. _1441: https://github.com/pytest-dev/pytest/pull/1441\n>.. _1444: https://github.com/pytest-dev/pytest/pull/1444\n>.. _1454: https://github.com/pytest-dev/pytest/pull/1454\n>.. _1461: https://github.com/pytest-dev/pytest/pull/1461\n>.. _1468: https://github.com/pytest-dev/pytest/pull/1468\n>.. _1471: https://github.com/pytest-dev/pytest/issues/1471\n>.. _1474: https://github.com/pytest-dev/pytest/pull/1474\n>.. _1479: https://github.com/pytest-dev/pytest/issues/1479\n>.. _1502: https://github.com/pytest-dev/pytest/pull/1502\n>.. _1503: https://github.com/pytest-dev/pytest/issues/1503\n>.. _1516: https://github.com/pytest-dev/pytest/pull/1516\n>.. _1519: https://github.com/pytest-dev/pytest/pull/1519\n>.. _1520: https://github.com/pytest-dev/pytest/pull/1520\n>.. _1526: https://github.com/pytest-dev/pytest/pull/1526\n>.. _1539: https://github.com/pytest-dev/pytest/issues/1539\n>.. _1544: https://github.com/pytest-dev/pytest/issues/1544\n>.. _1546: https://github.com/pytest-dev/pytest/issues/1546\n>.. _1553: https://github.com/pytest-dev/pytest/issues/1553\n>.. _1562: https://github.com/pytest-dev/pytest/issues/1562\n>.. _1579: https://github.com/pytest-dev/pytest/issues/1579\n>.. _1580: https://github.com/pytest-dev/pytest/pull/1580\n>.. _1594: https://github.com/pytest-dev/pytest/issues/1594\n>.. _1597: https://github.com/pytest-dev/pytest/pull/1597\n>.. _1605: https://github.com/pytest-dev/pytest/issues/1605\n>.. _1616: https://github.com/pytest-dev/pytest/pull/1616\n>.. _1618: https://github.com/pytest-dev/pytest/issues/1618\n>.. _1619: https://github.com/pytest-dev/pytest/issues/1619\n>.. _1626: https://github.com/pytest-dev/pytest/pull/1626\n>.. _1627: https://github.com/pytest-dev/pytest/pull/1627\n>.. _1628: https://github.com/pytest-dev/pytest/pull/1628\n>.. _1629: https://github.com/pytest-dev/pytest/issues/1629\n>.. _1632: https://github.com/pytest-dev/pytest/issues/1632\n>.. _1633: https://github.com/pytest-dev/pytest/pull/1633\n>.. _1664: https://github.com/pytest-dev/pytest/pull/1664\n>.. _1668: https://github.com/pytest-dev/pytest/issues/1668\n>.. _1684: https://github.com/pytest-dev/pytest/pull/1684\n>.. _1723: https://github.com/pytest-dev/pytest/pull/1723\n>.. _1740: https://github.com/pytest-dev/pytest/issues/1740\n>.. _1749: https://github.com/pytest-dev/pytest/issues/1749\n>.. _1778: https://github.com/pytest-dev/pytest/pull/1778\n>.. _1795: https://github.com/pytest-dev/pytest/pull/1795\n>.. _1798: https://github.com/pytest-dev/pytest/pull/1798\n>.. _1809: https://github.com/pytest-dev/pytest/pull/1809\n>.. _372: https://github.com/pytest-dev/pytest/issues/372\n>.. _457: https://github.com/pytest-dev/pytest/issues/457\n>.. _460: https://github.com/pytest-dev/pytest/pull/460\n>.. _567: https://github.com/pytest-dev/pytest/pull/567\n>.. _607: https://github.com/pytest-dev/pytest/issues/607\n>.. _634: https://github.com/pytest-dev/pytest/issues/634\n>.. _717: https://github.com/pytest-dev/pytest/issues/717\n>.. _830: https://github.com/pytest-dev/pytest/issues/830\n>.. _925: https://github.com/pytest-dev/pytest/issues/925\n\n\n>.. _anntzer: https://github.com/anntzer\n>.. _bagerard: https://github.com/bagerard\n>.. _BeyondEvil: https://github.com/BeyondEvil\n>.. _blueyed: https://github.com/blueyed\n>.. _ceridwen: https://github.com/ceridwen\n>.. _cryporchild: https://github.com/cryporchild\n>.. _csaftoiu: https://github.com/csaftoiu\n>.. _d6e: https://github.com/d6e\n>.. _davehunt: https://github.com/davehunt\n>.. _DRMacIver: https://github.com/DRMacIver\n>.. _eolo999: https://github.com/eolo999\n>.. _fengxx: https://github.com/fengxx\n>.. _flub: https://github.com/flub\n>.. _gprasad84: https://github.com/gprasad84\n>.. _graingert: https://github.com/graingert\n>.. _hartym: https://github.com/hartym\n>.. _JonathonSonesen: https://github.com/JonathonSonesen\n>.. _kalekundert: https://github.com/kalekundert\n>.. _kvas-it: https://github.com/kvas-it\n>.. _marscher: https://github.com/marscher\n>.. _mikofski: https://github.com/mikofski\n>.. _milliams: https://github.com/milliams\n>.. _nikratio: https://github.com/nikratio\n>.. _novas0x2a: https://github.com/novas0x2a\n>.. _obestwalter: https://github.com/obestwalter\n>.. _okken: https://github.com/okken\n>.. _olegpidsadnyi: https://github.com/olegpidsadnyi\n>.. _omarkohl: https://github.com/omarkohl\n>.. _palaviv: https://github.com/palaviv\n>.. _RedBeardCode: https://github.com/RedBeardCode\n>.. _sallner: https://github.com/sallner\n>.. _sober7: https://github.com/sober7\n>.. _Stranger6667: https://github.com/Stranger6667\n>.. _suzaku: https://github.com/suzaku\n>.. _tareqalayan: https://github.com/tareqalayan\n>.. _taschini: https://github.com/taschini\n>.. _tramwaj29: https://github.com/tramwaj29\n>.. _txomon: https://github.com/txomon\n>.. _Vogtinator: https://github.com/Vogtinator\n>.. _matthiasha: https://github.com/matthiasha\n\n\n\n\n\n\n\n\n### testinfra 1.4.5 -> 1.6.2\n\n>### 1.6.2\n\n>=====\n\n>* Fix wheel package for 1.6.1\n\n\n\n>### 1.6.1\n\n>=====\n\n>* Support ansible 2.3 with python 3 (197)\n\n\n\n>### 1.6.0\n\n>=====\n\n>* New &#39;host&#39; fixture as a replacement for all other fixtures.\n>  See https://testinfra.readthedocs.io/en/latest/modules.htmlhost\n>  (Other fixtures are deprecated and will be removed in 2.0 release).\n\n\n\n\n>### 1.5.5\n\n>=====\n\n>* backends: Fix ansible backend with ansible &gt;= 2.3 (195)\n\n\n\n>### 1.5.4\n\n>=====\n\n>* backends: fallback to UTF-8 encoding when system encoding is ASCII.\n>* Service: fix is_running() on systems using Upstart\n\n\n\n>### 1.5.3\n\n>=====\n\n>* Sudo: restore backend command in case of exceptions\n\n\n\n>### 1.5.2\n\n>=====\n\n>* Honnor become_user when using the ansible backend\n\n\n\n>### 1.5.1\n\n>=====\n\n>* Add dependency on importlib on python 2.6\n\n\n\n\n>### 1.5.0\n\n>=====\n\n>* New kubectl backend\n>* Command: check_output strip carriage return and newlines (164)\n>* Package: rpm improve getting version() and release()\n>* User: add gecos (comment) field (155)\n\n\n\n\n\n\n\n\n\nOnce you have closed this pull request, I'll create separate pull requests for every update as soon as I find them.\n\nThat's it for now!\n\nHappy merging! 🤖\n","created_at":"2017-05-19T08:55:22Z","updated_at":"2017-08-17T07:46:54Z","closed_at":"2017-08-17T07:46:54Z","merged_at":null,"merge_commit_sha":"276877007706027aa07390889f858d6e1d3eef20","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/5/commits","review_comments_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/5/comments","review_comment_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/comments{/number}","comments_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/5/comments","statuses_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/statuses/df7921a7a14b8663425e6d5a6871e6ca67d38c20","head":{"label":"infOpen:pyup-initial-update","ref":"pyup-initial-update","sha":"df7921a7a14b8663425e6d5a6871e6ca67d38c20","user":{"login":"infOpen","id":2934016,"avatar_url":"https://avatars2.githubusercontent.com/u/2934016?v=4","gravatar_id":"","url":"https://api.github.com/users/infOpen","html_url":"https://github.com/infOpen","followers_url":"https://api.github.com/users/infOpen/followers","following_url":"https://api.github.com/users/infOpen/following{/other_user}","gists_url":"https://api.github.com/users/infOpen/gists{/gist_id}","starred_url":"https://api.github.com/users/infOpen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infOpen/subscriptions","organizations_url":"https://api.github.com/users/infOpen/orgs","repos_url":"https://api.github.com/users/infOpen/repos","events_url":"https://api.github.com/users/infOpen/events{/privacy}","received_events_url":"https://api.github.com/users/infOpen/received_events","type":"Organization","site_admin":false},"repo":{"id":42964425,"name":"ansible-role-fail2ban","full_name":"infOpen/ansible-role-fail2ban","owner":{"login":"infOpen","id":2934016,"avatar_url":"https://avatars2.githubusercontent.com/u/2934016?v=4","gravatar_id":"","url":"https://api.github.com/users/infOpen","html_url":"https://github.com/infOpen","followers_url":"https://api.github.com/users/infOpen/followers","following_url":"https://api.github.com/users/infOpen/following{/other_user}","gists_url":"https://api.github.com/users/infOpen/gists{/gist_id}","starred_url":"https://api.github.com/users/infOpen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infOpen/subscriptions","organizations_url":"https://api.github.com/users/infOpen/orgs","repos_url":"https://api.github.com/users/infOpen/repos","events_url":"https://api.github.com/users/infOpen/events{/privacy}","received_events_url":"https://api.github.com/users/infOpen/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/infOpen/ansible-role-fail2ban","description":"The Ansible fail2ban role used by Infopen company","fork":false,"url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban","forks_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/forks","keys_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/keys{/key_id}","collaborators_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/teams","hooks_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/hooks","issue_events_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/events{/number}","events_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/events","assignees_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/assignees{/user}","branches_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/branches{/branch}","tags_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/tags","blobs_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/refs{/sha}","trees_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/trees{/sha}","statuses_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/statuses/{sha}","languages_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/languages","stargazers_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/stargazers","contributors_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/contributors","subscribers_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/subscribers","subscription_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/subscription","commits_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/commits{/sha}","git_commits_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/commits{/sha}","comments_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/comments{/number}","issue_comment_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/comments{/number}","contents_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/contents/{+path}","compare_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/compare/{base}...{head}","merges_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/merges","archive_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/downloads","issues_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues{/number}","pulls_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls{/number}","milestones_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/milestones{/number}","notifications_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/labels{/name}","releases_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/releases{/id}","deployments_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/deployments","created_at":"2015-09-22T22:24:47Z","updated_at":"2017-08-10T00:27:00Z","pushed_at":"2017-08-17T07:46:27Z","git_url":"git://github.com/infOpen/ansible-role-fail2ban.git","ssh_url":"git@github.com:infOpen/ansible-role-fail2ban.git","clone_url":"https://github.com/infOpen/ansible-role-fail2ban.git","svn_url":"https://github.com/infOpen/ansible-role-fail2ban","homepage":null,"size":25,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":3,"forks":7,"open_issues":3,"watchers":1,"default_branch":"master"}},"base":{"label":"infOpen:master","ref":"master","sha":"032d1c8c4280f85a8a9fae5cd16b68081a145e14","user":{"login":"infOpen","id":2934016,"avatar_url":"https://avatars2.githubusercontent.com/u/2934016?v=4","gravatar_id":"","url":"https://api.github.com/users/infOpen","html_url":"https://github.com/infOpen","followers_url":"https://api.github.com/users/infOpen/followers","following_url":"https://api.github.com/users/infOpen/following{/other_user}","gists_url":"https://api.github.com/users/infOpen/gists{/gist_id}","starred_url":"https://api.github.com/users/infOpen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infOpen/subscriptions","organizations_url":"https://api.github.com/users/infOpen/orgs","repos_url":"https://api.github.com/users/infOpen/repos","events_url":"https://api.github.com/users/infOpen/events{/privacy}","received_events_url":"https://api.github.com/users/infOpen/received_events","type":"Organization","site_admin":false},"repo":{"id":42964425,"name":"ansible-role-fail2ban","full_name":"infOpen/ansible-role-fail2ban","owner":{"login":"infOpen","id":2934016,"avatar_url":"https://avatars2.githubusercontent.com/u/2934016?v=4","gravatar_id":"","url":"https://api.github.com/users/infOpen","html_url":"https://github.com/infOpen","followers_url":"https://api.github.com/users/infOpen/followers","following_url":"https://api.github.com/users/infOpen/following{/other_user}","gists_url":"https://api.github.com/users/infOpen/gists{/gist_id}","starred_url":"https://api.github.com/users/infOpen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infOpen/subscriptions","organizations_url":"https://api.github.com/users/infOpen/orgs","repos_url":"https://api.github.com/users/infOpen/repos","events_url":"https://api.github.com/users/infOpen/events{/privacy}","received_events_url":"https://api.github.com/users/infOpen/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/infOpen/ansible-role-fail2ban","description":"The Ansible fail2ban role used by Infopen company","fork":false,"url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban","forks_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/forks","keys_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/keys{/key_id}","collaborators_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/teams","hooks_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/hooks","issue_events_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/events{/number}","events_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/events","assignees_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/assignees{/user}","branches_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/branches{/branch}","tags_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/tags","blobs_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/refs{/sha}","trees_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/trees{/sha}","statuses_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/statuses/{sha}","languages_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/languages","stargazers_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/stargazers","contributors_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/contributors","subscribers_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/subscribers","subscription_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/subscription","commits_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/commits{/sha}","git_commits_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/git/commits{/sha}","comments_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/comments{/number}","issue_comment_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/comments{/number}","contents_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/contents/{+path}","compare_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/compare/{base}...{head}","merges_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/merges","archive_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/downloads","issues_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues{/number}","pulls_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls{/number}","milestones_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/milestones{/number}","notifications_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/labels{/name}","releases_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/releases{/id}","deployments_url":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/deployments","created_at":"2015-09-22T22:24:47Z","updated_at":"2017-08-10T00:27:00Z","pushed_at":"2017-08-17T07:46:27Z","git_url":"git://github.com/infOpen/ansible-role-fail2ban.git","ssh_url":"git@github.com:infOpen/ansible-role-fail2ban.git","clone_url":"https://github.com/infOpen/ansible-role-fail2ban.git","svn_url":"https://github.com/infOpen/ansible-role-fail2ban","homepage":null,"size":25,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":3,"forks":7,"open_issues":3,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/5"},"html":{"href":"https://github.com/infOpen/ansible-role-fail2ban/pull/5"},"issue":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/5"},"comments":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/infOpen/ansible-role-fail2ban/statuses/df7921a7a14b8663425e6d5a6871e6ca67d38c20"}},"merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":4,"additions":4,"deletions":4,"changed_files":1}}
{"actor":{"display_login":"achaussier"}}