pulp / pulp/pulpcore

Document for plugin writers the usefullness of mitmproxy

Open
#1,900 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Documentation Task
Dominant language
Python
Stars
598
Forks
168
Avg merge
1d 4h
Merged PRs (30d)
86

Description

Author: @bmbouter (bmbouter)

Redmine Issue: 6870, https://pulp.plan.io/issues/6870


Background

The mitmproxy are extremely useful for debugging how services work which normally talk using TLS. Say you want to debug a CLI talking to it's server so that you can reverse engineer how Pulp needs to behave as either the client or server. For example debugging between the ansible-galaxy CLI and galaxy.ansible.com (the server side). You could use mitmproxy in the middle like:

ansible-galaxy CLI <--> mitmproxy <--> ansible.galaxy.com.

You can enable this easily if the CLI has any sort of "proxy config".

Example

Setup mitmproxy and run it
pip install mitmproxy
mitmweb -v -v -v --listen-port 8088 --web-port 8089 -k
Configure the CLI to talk "through" mitmproxy and to ignore that it doesn't have a trusted cert

export ANSIBLE_GALAXY_IGNORE=true
export ANSIBLE_CONFIG=/home/vagrant/devel/automation_hub.cfg
export HTTPS_PROXY=localhost:8088

Usage

Make CLI requests and read all requests and responses from the mitmproxy UI.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No target documentation file is named. Start with the mitmproxy setup and the ansible-galaxy example in the issue, then locate the plugin-writer or CLI documentation area where this guidance belongs. Done means plugin writers can install mitmproxy, configure the CLI proxy and certificate settings, and inspect requests and responses through the mitmproxy UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
ansible, python
Domain
cli, developer-experience, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.