ansible / ansibullbot

Bot for management of Ansible issues and PRs on GitHub.
GNU General Public License v3.0
203 stars 126 forks source link

triagers: fix --dump_actions #1584

Closed dmsimard closed 3 years ago

dmsimard commented 3 years ago

Use a dict representation to prevent a traceback with TypeError: Object of type AnsibleActions is not JSON serializable.

dmsimard commented 3 years ago

Before:

INFO:root:dumping /tmp/actions/ansible-collections/community.general/2386.json
2021-07-15 10:35:31,307 INFO 14739 defaulttriager.py:dump_action_dict:268 dumping /tmp/actions/ansible-collections/community.general/2386.json
ERROR:root:Uncaught exception
Traceback (most recent call last):
  File "/home/dmsimard/dev/git/ansible-community/collection_bot/./triage_ansible.py", line 45, in <module>
    main()
  File "/home/dmsimard/dev/git/ansible-community/collection_bot/./triage_ansible.py", line 41, in main
    AnsibleTriage(args=sys.argv[1:]).start()
  File "/home/dmsimard/dev/git/ansible-community/collection_bot/ansibullbot/triagers/defaulttriager.py", line 170, in start
    self.run()
  File "/home/dmsimard/dev/git/ansible-community/collection_bot/ansibullbot/triagers/ansible.py", line 332, in run
    action_meta = self.apply_actions(iw, actions)
  File "/home/dmsimard/dev/git/ansible-community/collection_bot/ansibullbot/triagers/defaulttriager.py", line 195, in apply_actions
    self.dump_action_dict(iw, actions)
  File "/home/dmsimard/dev/git/ansible-community/collection_bot/ansibullbot/triagers/defaulttriager.py", line 270, in dump_action_dict
    f.write(json.dumps(actions, indent=2, sort_keys=True))
  File "/usr/lib64/python3.9/json/__init__.py", line 234, in dumps
    return cls(
  File "/usr/lib64/python3.9/json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File "/usr/lib64/python3.9/json/encoder.py", line 438, in _iterencode
    o = _default(o)
  File "/usr/lib64/python3.9/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type AnsibleActions is not JSON serializable

After:

INFO:root:dumping /tmp/actions/ansible-collections/community.general/2386.json
2021-07-15 10:41:22,366 INFO 15733 defaulttriager.py:dump_action_dict:268 dumping /tmp/actions/ansible-collections/community.general/2386.json
codecov[bot] commented 3 years ago

Codecov Report

Merging #1584 (b9ce7a0) into master (c0be643) will not change coverage. The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master    #1584   +/-   ##
=======================================
  Coverage   35.80%   35.80%           
=======================================
  Files          52       52           
  Lines        7430     7430           
=======================================
  Hits         2660     2660           
  Misses       4770     4770