* feat: 38589 GitHub App Authentication (#15807) * feat: 38589 GitHub App Authentication Allows both git@<personal-token> and x-access-token@<github-access-token> when authenticating using git. This allows GitHub App tokens to work without interfering with existing authentication types. --------- Co-authored-by: Jake Jackson <thedoubl3j@Jakes-MacBook-Pro.local> * revert change made to allow UI to accept x-access-token, just use htt… (#15851) revert change made to allow UI to accept x-access-token, just use https:// instead * Add Github dep for new cred support if used (#15850) * Add pygithub for new app token support * fixed git requirements file with new * added new github dep and relevant deps it needs * add required licenses * Add artifacts to satisfy license check * Remove duplicated license --------- Co-authored-by: Andrea Restle-Lay <arestlel@redhat.com> Co-authored-by: Alan Rominger <arominge@redhat.com> * Remove deps update it came with the cherry-pick and is not needed in this version Remove unneeded deps updates from requirements.in Remove point to awx-plugins as it is not needed in tower * Add a credential plugin that uses GitHub Apps to get tokens * Add github app tests * Ran requirements updater script Ran black on github_app_test to fix formatting issue Add scm_github_app to managed credentials Ran updater script to reflect new deps Added github app info to def build_passwords in jobs.py, cred now appears in credential types Update ManagedCredentialType for GitHub App to match what we have in awx-plugins Update inputs in maManagedCredentialType to github_app_inputs to communicate with awx/main/credential_plugins/github_app.py Revert incorrect change in ManagedCredentialType, change github_app_lookup to call inputs instead of github_app_inputs Updated namespace to github_app_lookup to agree with nomenclature used in the rest of the implementation and to resolve failing API test Remove import pointing to awx plugins and update to point to credential_plugins Remove references to gh_app_plugin_mod and change to github_app Remove from awx_plugins.interfaces._temporary_private_django_api import ( # noqa: WPS436 to resolve failing test Remove flake8 typing & typing references that do not exist in this version of Tower Remove references in jobs.py and __init__.py since this is an external cred type and registered it in setup.cfg instead Remove blank line REvise name in cfg from github_app_lookup to github_app to see if that ifxes module not found error Revise first declaration of github_app to agree with file name to see if that resolves issue Rename line 174 to agree with what's in config Fix reference to github_app_lookup to github_app Linters compliaining about the github_app in __all__ not being defined, renamed to see if that aligns them Fix naming in test to correspond to naming of cred type Update naming to be more specific and add blank line to setup.cfg Remove __all__ from githubapp.py to satisfy linters Revert formatting change since it is not needed in this repository * Add blank line at the end of requirements.in --------- Co-authored-by: Andrea Restle-Lay <andrearestlelay@gmail.com> Co-authored-by: Jake Jackson <thedoubl3j@Jakes-MacBook-Pro.local> Co-authored-by: Jake Jackson <jljacks93@gmail.com> Co-authored-by: Andrea Restle-Lay <arestlel@redhat.com> Co-authored-by: Alan Rominger <arominge@redhat.com>
AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.
To install AWX, please view the Install guide.
To learn more about using AWX, view the AWX docs site.
The AWX Project Frequently Asked Questions can be found here.
The AWX logos and branding assets are covered by our trademark guidelines.
Contributing
- Refer to the Contributing guide to get started developing, testing, and building AWX.
- All code submissions are made through pull requests against the
develbranch. - All contributors must use git commit --signoff for any commit to be merged and agree that usage of --signoff constitutes agreement with the terms of DCO 1.1
- Take care to make sure no merge commits are in the submission, and use
git rebasevs.git mergefor this reason. - If submitting a large code change, it's a good idea to join the
#ansible-awxchannel on web.libera.chat and talk about what you would like to do or add first. This not only helps everyone know what's going on, but it also helps save time and effort if the community decides some changes are needed.
Reporting Issues
If you're experiencing a problem that you feel is a bug in AWX or have ideas for improving AWX, we encourage you to open an issue and share your feedback. But before opening a new issue, we ask that you please take a look at our Issues guide.
Code of Conduct
We ask all of our community members and contributors to adhere to the Ansible code of conduct. If you have questions or need assistance, please reach out to our community team at codeofconduct@ansible.com
Get Involved
We welcome your feedback and ideas. Here's how to reach us with feedback and questions:
- Join the Ansible AWX channel on Matrix
- Join the Ansible Community Forum